diff --git a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java index ffcf50988..435734929 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/directorys/specials/items/bldrs/Xow_db_mkr.java @@ -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.xowa.addons.wikis.directorys.dbs.*; import gplx.xowa.addons.wikis.ctgs.dbs.*; +import gplx.xowa.addons.wikis.searchs.dbs.*; 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) { // create db @@ -48,13 +49,29 @@ public class Xow_db_mkr { , 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 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_stats_tbl.Get_by_key(core_db).Update(0, 0, 0); // 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); props.Cfg_save(cfg_tbl); diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_cfg_.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_cfg_.java index 23a1c77a6..24c357348 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_cfg_.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_cfg_.java @@ -48,7 +48,7 @@ public class Srch_db_cfg_ { } public static final int Link_count_score_cutoff = 300; - private static final String + public static final String Grp__search__cfg = "xowa.search.cfg" , Key__version_id = "version_id" , Key__word_count = "word_count" diff --git a/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java b/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java index a67ee6ba9..c0679c6f7 100644 --- a/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/wikis/searchs/dbs/Srch_db_mgr.java @@ -38,7 +38,7 @@ public class Srch_db_mgr { tbl__cfg = gplx.xowa.wikis.data.Xowd_cfg_tbl_.New(word_db.Conn()); tbl__word = new Srch_word_tbl(word_db.Conn()); 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 { // many_db; figure out link_dbs 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); 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__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 int dbs_len = hash.Count(); tbl__link__ary = new Srch_link_tbl[dbs_len]; for (int i = 0; i < dbs_len; ++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); } - private static Srch_link_tbl Tbl__link__ary__set(Srch_link_tbl[] ary, int idx, Xow_db_file db) { - Srch_link_tbl tbl = new Srch_link_tbl(db.Conn()); + 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(conn); ary[idx] = 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 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(); 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); }