1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2025-06-13 12:54:14 +00:00

Personal_wikis: Create personal wikis with latest search database schema

This commit is contained in:
gnosygnu 2017-04-06 22:37:30 -04:00
parent 0d1b478aa2
commit 5fef0af3a5
3 changed files with 25 additions and 8 deletions

View File

@ -21,6 +21,7 @@ import gplx.xowa.langs.cases.*;
import gplx.fsdb.*; import gplx.fsdb.meta.*; import gplx.fsdb.data.*; import gplx.xowa.files.origs.*; import gplx.fsdb.*; import gplx.fsdb.meta.*; import gplx.fsdb.data.*; import gplx.xowa.files.origs.*;
import gplx.xowa.addons.wikis.directorys.dbs.*; import gplx.xowa.addons.wikis.directorys.dbs.*;
import gplx.xowa.addons.wikis.ctgs.dbs.*; import gplx.xowa.addons.wikis.ctgs.dbs.*;
import gplx.xowa.addons.wikis.searchs.dbs.*;
public class Xow_db_mkr { public class Xow_db_mkr {
public static Xodb_wiki_mgr Create_wiki(Xodb_wiki_data data, String wiki_name, byte[] mainpage_name, byte[] mainpage_text) { public static Xodb_wiki_mgr Create_wiki(Xodb_wiki_data data, String wiki_name, byte[] mainpage_name, byte[] mainpage_text) {
// create db // create db
@ -48,13 +49,29 @@ public class Xow_db_mkr {
, new Xodb_cat_link_tbl(core_conn) , new Xodb_cat_link_tbl(core_conn)
); );
// create tbls; search_word
Srch_word_tbl search_word_tbl = new Srch_word_tbl(core_conn);
search_word_tbl.Create_tbl(); search_word_tbl.Create_idx();
// create tbls; search_link
Srch_link_tbl[] search_link_tbls = new Srch_link_tbl[1];
Srch_db_mgr.Tbl__link__ary__set(search_link_tbls, 0, core_conn);
for (Srch_link_tbl link : search_link_tbls) {
link.Create_tbl();
link.Create_idx__link_score();
link.Create_idx__page_id();
}
// insert cfg; search version
Db_cfg_tbl cfg_tbl = Db_cfg_tbl.Get_by_key(core_db, Xowd_cfg_tbl_.Tbl_name);
cfg_tbl.Upsert_int(Srch_db_cfg_.Grp__search__cfg, Srch_db_cfg_.Key__version_id, Srch_db_upgrade.Version__link_score);
// insert data: wiki // insert data: wiki
Xowd_xowa_db_tbl.Get_by_key(core_db).Upsert(0, Xow_db_file_.Tid__core, core_db.Url().NameAndExt(), "", -1, Guid_adp_.New_str()); Xowd_xowa_db_tbl.Get_by_key(core_db).Upsert(0, Xow_db_file_.Tid__core, core_db.Url().NameAndExt(), "", -1, Guid_adp_.New_str());
Xowd_site_ns_tbl.Get_by_key(core_db).Insert(Xow_ns_mgr_.default_(Xol_case_mgr_.U8())); Xowd_site_ns_tbl.Get_by_key(core_db).Insert(Xow_ns_mgr_.default_(Xol_case_mgr_.U8()));
Xowd_site_stats_tbl.Get_by_key(core_db).Update(0, 0, 0); Xowd_site_stats_tbl.Get_by_key(core_db).Update(0, 0, 0);
// insert data: cfg // insert data: cfg
Db_cfg_tbl cfg_tbl = Db_cfg_tbl.Get_by_key(core_db, Xowd_cfg_tbl_.Tbl_name);
Xowd_core_db_props props = new Xowd_core_db_props(2, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Io_stream_tid_.Tid__raw, Io_stream_tid_.Tid__raw, Bool_.N, Bool_.N); Xowd_core_db_props props = new Xowd_core_db_props(2, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Io_stream_tid_.Tid__raw, Io_stream_tid_.Tid__raw, Bool_.N, Bool_.N);
props.Cfg_save(cfg_tbl); props.Cfg_save(cfg_tbl);

View File

@ -48,7 +48,7 @@ public class Srch_db_cfg_ {
} }
public static final int Link_count_score_cutoff = 300; public static final int Link_count_score_cutoff = 300;
private static final String public static final String
Grp__search__cfg = "xowa.search.cfg" Grp__search__cfg = "xowa.search.cfg"
, Key__version_id = "version_id" , Key__version_id = "version_id"
, Key__word_count = "word_count" , Key__word_count = "word_count"

View File

@ -38,7 +38,7 @@ public class Srch_db_mgr {
tbl__cfg = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(word_db.Conn()); tbl__cfg = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(word_db.Conn());
tbl__word = new Srch_word_tbl(word_db.Conn()); tbl__word = new Srch_word_tbl(word_db.Conn());
tbl__link__ary = new Srch_link_tbl[1]; tbl__link__ary = new Srch_link_tbl[1];
Tbl__link__ary__set(tbl__link__ary, 0, word_db); Tbl__link__ary__set(tbl__link__ary, 0, word_db.Conn());
} else { } else {
// many_db; figure out link_dbs // many_db; figure out link_dbs
word_db = db_mgr.Dbs__get_by_tid_or_null(Srch_db_mgr_.Dbtid__search_core); word_db = db_mgr.Dbs__get_by_tid_or_null(Srch_db_mgr_.Dbtid__search_core);
@ -48,13 +48,13 @@ public class Srch_db_mgr {
Ordered_hash hash = db_mgr.Dbs__get_hash_by_tid(Srch_db_mgr_.Dbtid__search_link); Ordered_hash hash = db_mgr.Dbs__get_hash_by_tid(Srch_db_mgr_.Dbtid__search_link);
if (hash == null) { // v2 file layout where search_word and search_link is in 1 search_db if (hash == null) { // v2 file layout where search_word and search_link is in 1 search_db
tbl__link__ary = new Srch_link_tbl[1]; tbl__link__ary = new Srch_link_tbl[1];
Tbl__link__ary__set(tbl__link__ary, 0, word_db); Tbl__link__ary__set(tbl__link__ary, 0, word_db.Conn());
} else { // v3 file layout where search_link is in many db } else { // v3 file layout where search_link is in many db
int dbs_len = hash.Count(); int dbs_len = hash.Count();
tbl__link__ary = new Srch_link_tbl[dbs_len]; tbl__link__ary = new Srch_link_tbl[dbs_len];
for (int i = 0; i < dbs_len; ++i) { for (int i = 0; i < dbs_len; ++i) {
Xow_db_file db_file = (Xow_db_file)hash.Get_at(i); Xow_db_file db_file = (Xow_db_file)hash.Get_at(i);
Tbl__link__ary__set(tbl__link__ary, i, db_file); Tbl__link__ary__set(tbl__link__ary, i, db_file.Conn());
} }
} }
} }
@ -104,8 +104,8 @@ public class Srch_db_mgr {
search_link_tbl.Update_page_id(old_id, new_id); search_link_tbl.Update_page_id(old_id, new_id);
} }
private static Srch_link_tbl Tbl__link__ary__set(Srch_link_tbl[] ary, int idx, Xow_db_file db) { public static Srch_link_tbl Tbl__link__ary__set(Srch_link_tbl[] ary, int idx, gplx.dbs.Db_conn conn) {
Srch_link_tbl tbl = new Srch_link_tbl(db.Conn()); Srch_link_tbl tbl = new Srch_link_tbl(conn);
ary[idx] = tbl; ary[idx] = tbl;
return tbl; return tbl;
} }
@ -115,7 +115,7 @@ public class Srch_db_mgr {
String suffix = "-xtn.search.link-title-ns." + ns_ids + "-db.001.xowa"; // -xtn.search.link-title-ns.main-db.001.xowa String suffix = "-xtn.search.link-title-ns." + ns_ids + "-db.001.xowa"; // -xtn.search.link-title-ns.main-db.001.xowa
db = db_mgr.Dbs__make_by_tid(Srch_db_mgr_.Dbtid__search_link, ns_ids, idx, suffix); db = db_mgr.Dbs__make_by_tid(Srch_db_mgr_.Dbtid__search_link, ns_ids, idx, suffix);
} }
Srch_link_tbl tbl = Tbl__link__ary__set(ary, idx, db); Srch_link_tbl tbl = Tbl__link__ary__set(ary, idx, db.Conn());
tbl.Create_tbl(); tbl.Create_tbl();
lreg_tbl.Insert(idx, db.Id(), Srch_link_reg_tbl.Db_type__title, ns_ids_is_main ? Srch_link_reg_tbl.Ns_type__main : Srch_link_reg_tbl.Ns_type__rest, 0, -1, -1); lreg_tbl.Insert(idx, db.Id(), Srch_link_reg_tbl.Db_type__title, ns_ids_is_main ? Srch_link_reg_tbl.Ns_type__main : Srch_link_reg_tbl.Ns_type__rest, 0, -1, -1);
} }