mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Wiki.Dom: Remove wiki dependency from search db_mgr
This commit is contained in:
parent
1188122823
commit
95632e0e98
@ -120,11 +120,11 @@ public class Xoctg_edit_mgr {
|
|||||||
cat_core_tbl.Delete(page_id);
|
cat_core_tbl.Delete(page_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void Update_page_id(Xowe_wiki wiki, int ns_id, int old_id, int new_id) {
|
public static void Update_page_id(Xow_db_mgr db_mgr, int ns_id, int old_id, int new_id) {
|
||||||
boolean ns_id_is_category = ns_id == Xow_ns_.Tid__category;
|
boolean ns_id_is_category = ns_id == Xow_ns_.Tid__category;
|
||||||
|
|
||||||
// get cat_link_tbls
|
// get cat_link_tbls
|
||||||
Xodb_cat_link_tbl[] cat_link_tbls = Xodb_cat_link_tbl.Get_catlink_tbls(wiki.Data__core_mgr());
|
Xodb_cat_link_tbl[] cat_link_tbls = Xodb_cat_link_tbl.Get_catlink_tbls(db_mgr);
|
||||||
|
|
||||||
// loop cat_link tbls to find linked categories
|
// loop cat_link tbls to find linked categories
|
||||||
for (Xodb_cat_link_tbl cat_link_tbl : cat_link_tbls) {
|
for (Xodb_cat_link_tbl cat_link_tbl : cat_link_tbls) {
|
||||||
@ -136,7 +136,7 @@ public class Xoctg_edit_mgr {
|
|||||||
|
|
||||||
// update cat_core
|
// update cat_core
|
||||||
if (ns_id_is_category) {
|
if (ns_id_is_category) {
|
||||||
Xowd_cat_core_tbl cat_core_tbl = Xodb_cat_db_.Get_cat_core_or_fail(wiki.Data__core_mgr());
|
Xowd_cat_core_tbl cat_core_tbl = Xodb_cat_db_.Get_cat_core_or_fail(db_mgr);
|
||||||
cat_core_tbl.Update_page_id(old_id, new_id);
|
cat_core_tbl.Update_page_id(old_id, new_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,7 @@ public class Xopg_db_mgr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// cat_core, cat_link
|
// cat_core, cat_link
|
||||||
gplx.xowa.addons.wikis.ctgs.edits.Xoctg_edit_mgr.Update_page_id(wiki, ns_id, old_id, new_id);
|
gplx.xowa.addons.wikis.ctgs.edits.Xoctg_edit_mgr.Update_page_id(db_mgr, ns_id, old_id, new_id);
|
||||||
|
|
||||||
// search_link
|
// search_link
|
||||||
Srch_search_addon.Get(wiki).Update_links(ns_id, old_id, new_id);
|
Srch_search_addon.Get(wiki).Update_links(ns_id, old_id, new_id);
|
||||||
|
@ -23,7 +23,7 @@ public class Srch_search_addon implements Xoax_addon_itm, Srch_search_addon_api
|
|||||||
private final Srch_search_mgr search_mgr;
|
private final Srch_search_mgr search_mgr;
|
||||||
public Srch_search_addon(Xow_wiki wiki) {
|
public Srch_search_addon(Xow_wiki wiki) {
|
||||||
this.wiki_domain = wiki.Domain_bry();
|
this.wiki_domain = wiki.Domain_bry();
|
||||||
this.db_mgr = new Srch_db_mgr(wiki).Init();
|
this.db_mgr = new Srch_db_mgr(wiki.Data__core_mgr()).Init(wiki.Stats().Num_pages());
|
||||||
this.ttl_parser = new Srch_text_parser().Init_for_ttl(wiki.Case_mgr());
|
this.ttl_parser = new Srch_text_parser().Init_for_ttl(wiki.Case_mgr());
|
||||||
this.search_mgr = new Srch_search_mgr(this, wiki, ttl_parser);
|
this.search_mgr = new Srch_search_mgr(this, wiki, ttl_parser);
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ class Srch_temp_tbl_wkr implements Srch_text_parser_wkr {
|
|||||||
search_temp_tbl.Insert_end();
|
search_temp_tbl.Insert_end();
|
||||||
|
|
||||||
// init
|
// init
|
||||||
Srch_db_mgr search_db_mgr = search_addon.Db_mgr().Init(); // NOTE: must call .Init for import-offline else Cfg_tbl will be null; note that .Init will bind to newly created search_word / search_link tbl; DATE:2016-04-04
|
Srch_db_mgr search_db_mgr = search_addon.Db_mgr().Init(wiki.Stats().Num_pages()); // NOTE: must call .Init for import-offline else Cfg_tbl will be null; note that .Init will bind to newly created search_word / search_link tbl; DATE:2016-04-04
|
||||||
Db_conn word_conn = search_temp_tbl.conn;
|
Db_conn word_conn = search_temp_tbl.conn;
|
||||||
|
|
||||||
// update search_word ids if they exist
|
// update search_word ids if they exist
|
||||||
|
@ -19,11 +19,9 @@ package gplx.xowa.addons.wikis.searchs.dbs; import gplx.*; import gplx.xowa.*; i
|
|||||||
import gplx.dbs.cfgs.*;
|
import gplx.dbs.cfgs.*;
|
||||||
import gplx.xowa.wikis.data.*;
|
import gplx.xowa.wikis.data.*;
|
||||||
public class Srch_db_mgr {
|
public class Srch_db_mgr {
|
||||||
private final Xow_wiki wiki;
|
private final Xow_db_mgr db_mgr;
|
||||||
public final Srch_db_upgrade Upgrade_mgr;
|
public Srch_db_mgr(Xow_db_mgr db_mgr) {
|
||||||
public Srch_db_mgr(Xow_wiki wiki) {
|
this.db_mgr = db_mgr;
|
||||||
this.wiki = wiki;
|
|
||||||
Upgrade_mgr = new Srch_db_upgrade(wiki, this);
|
|
||||||
}
|
}
|
||||||
public Srch_db_cfg Cfg() {return cfg;} private Srch_db_cfg cfg;
|
public Srch_db_cfg Cfg() {return cfg;} private Srch_db_cfg cfg;
|
||||||
public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private Db_cfg_tbl tbl__cfg;
|
public Db_cfg_tbl Tbl__cfg() {return tbl__cfg;} private Db_cfg_tbl tbl__cfg;
|
||||||
@ -32,8 +30,7 @@ public class Srch_db_mgr {
|
|||||||
public Srch_link_tbl Tbl__link__get_at(int i) {return tbl__link__ary[i];}
|
public Srch_link_tbl Tbl__link__get_at(int i) {return tbl__link__ary[i];}
|
||||||
public int Tbl__link__get_idx(int ns) {return ns == gplx.xowa.wikis.nss.Xow_ns_.Tid__main ? 0 : tbl__link__ary.length - 1;}
|
public int Tbl__link__get_idx(int ns) {return ns == gplx.xowa.wikis.nss.Xow_ns_.Tid__main ? 0 : tbl__link__ary.length - 1;}
|
||||||
public Srch_link_tbl[] Tbl__link__ary() {return tbl__link__ary;} private Srch_link_tbl[] tbl__link__ary = Srch_link_tbl.Ary_empty;
|
public Srch_link_tbl[] Tbl__link__ary() {return tbl__link__ary;} private Srch_link_tbl[] tbl__link__ary = Srch_link_tbl.Ary_empty;
|
||||||
public Srch_db_mgr Init() {
|
public Srch_db_mgr Init(long num_pages) {
|
||||||
Xow_db_mgr db_mgr = wiki.Data__core_mgr();
|
|
||||||
Xowd_core_db_props db_props = db_mgr.Db__core().Db_props();
|
Xowd_core_db_props db_props = db_mgr.Db__core().Db_props();
|
||||||
Xow_db_file word_db = null;
|
Xow_db_file word_db = null;
|
||||||
if ( db_props.Schema() == 1
|
if ( db_props.Schema() == 1
|
||||||
@ -63,12 +60,12 @@ public class Srch_db_mgr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cfg = Srch_db_cfg_.New(tbl__cfg, wiki.Stats().Num_pages(), Srch_db_cfg_.Select__version_id(tbl__cfg, tbl__word));
|
cfg = Srch_db_cfg_.New(tbl__cfg, num_pages, Srch_db_cfg_.Select__version_id(tbl__cfg, tbl__word));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public void Delete_all(Xow_db_mgr core_data_mgr) {
|
public void Delete_all(Xow_db_mgr core_data_mgr) {
|
||||||
tbl__word.conn.Meta_tbl_delete(Srch_link_reg_tbl.Tbl_name);
|
tbl__word.conn.Meta_tbl_delete(Srch_link_reg_tbl.Tbl_name);
|
||||||
Xowd_core_db_props db_props = wiki.Data__core_mgr().Db__core().Db_props();
|
Xowd_core_db_props db_props = db_mgr.Db__core().Db_props();
|
||||||
if ( db_props.Schema() == 1
|
if ( db_props.Schema() == 1
|
||||||
|| db_props.Layout_text().Tid_is_all_or_few()) {
|
|| db_props.Layout_text().Tid_is_all_or_few()) {
|
||||||
// single_db; just drop tables
|
// single_db; just drop tables
|
||||||
@ -82,8 +79,7 @@ public class Srch_db_mgr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void Create_all() {
|
public void Create_all() {
|
||||||
Xow_db_mgr db_mgr = wiki.Data__core_mgr();
|
Xowd_core_db_props db_props = db_mgr.Db__core().Db_props();
|
||||||
Xowd_core_db_props db_props = wiki.Data__core_mgr().Db__core().Db_props();
|
|
||||||
if ( db_props.Schema() == 1
|
if ( db_props.Schema() == 1
|
||||||
|| db_props.Layout_text().Tid_is_all_or_few()) {
|
|| db_props.Layout_text().Tid_is_all_or_few()) {
|
||||||
// single_db; put both in core_db
|
// single_db; put both in core_db
|
||||||
|
@ -16,6 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package gplx.xowa.addons.wikis.searchs.searchers; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.searchs.*;
|
package gplx.xowa.addons.wikis.searchs.searchers; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.searchs.*;
|
||||||
|
import gplx.xowa.addons.wikis.searchs.dbs.*;
|
||||||
import gplx.xowa.addons.wikis.searchs.searchers.rslts.*; import gplx.xowa.addons.wikis.searchs.searchers.wkrs.*; import gplx.xowa.addons.wikis.searchs.parsers.*; import gplx.xowa.addons.wikis.searchs.searchers.crts.*;
|
import gplx.xowa.addons.wikis.searchs.searchers.rslts.*; import gplx.xowa.addons.wikis.searchs.searchers.wkrs.*; import gplx.xowa.addons.wikis.searchs.parsers.*; import gplx.xowa.addons.wikis.searchs.searchers.crts.*;
|
||||||
import gplx.xowa.addons.wikis.searchs.searchers.crts.visitors.*;
|
import gplx.xowa.addons.wikis.searchs.searchers.crts.visitors.*;
|
||||||
import gplx.core.net.*; import gplx.core.net.qargs.*;
|
import gplx.core.net.*; import gplx.core.net.qargs.*;
|
||||||
@ -51,7 +52,8 @@ public class Srch_search_mgr implements Gfo_invk {
|
|||||||
|
|
||||||
// handle obsolete search dbs;
|
// handle obsolete search dbs;
|
||||||
if (addon.Db_mgr().Cfg().Version_id__needs_upgrade()) {
|
if (addon.Db_mgr().Cfg().Version_id__needs_upgrade()) {
|
||||||
addon.Db_mgr().Upgrade_mgr.Upgrade();
|
Srch_db_upgrade upgrade_mgr = new Srch_db_upgrade(wiki, addon.Db_mgr());
|
||||||
|
upgrade_mgr.Upgrade();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,9 +20,10 @@ import gplx.dbs.*; import gplx.dbs.cfgs.*; import gplx.core.lists.hashs.*;
|
|||||||
import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
|
import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.tbls.*;
|
||||||
import gplx.xowa.wikis.domains.*; import gplx.xowa.bldrs.infos.*; import gplx.xowa.wikis.metas.*;
|
import gplx.xowa.wikis.domains.*; import gplx.xowa.bldrs.infos.*; import gplx.xowa.wikis.metas.*;
|
||||||
public class Xow_db_mgr {
|
public class Xow_db_mgr {
|
||||||
|
private final Io_url wiki_root_dir;
|
||||||
|
private final String domain_str; // needed for generating new files; EX: en.wikipedia.org-text.ns.001.xowa
|
||||||
private final Ordered_hash hash_by_id = Ordered_hash_.New(); private final Xow_db_file_hash hash_by_tids = new Xow_db_file_hash();
|
private final Ordered_hash hash_by_id = Ordered_hash_.New(); private final Xow_db_file_hash hash_by_tids = new Xow_db_file_hash();
|
||||||
private int db_id_next = 0;
|
private int db_id_next = 0;
|
||||||
private final Io_url wiki_root_dir; private final String domain_str; // needed for generating new files; EX: en.wikipedia.org-text.ns.001.xowa
|
|
||||||
public Xow_db_mgr(Io_url wiki_root_dir, String domain_str) {
|
public Xow_db_mgr(Io_url wiki_root_dir, String domain_str) {
|
||||||
this.wiki_root_dir = wiki_root_dir;
|
this.wiki_root_dir = wiki_root_dir;
|
||||||
this.domain_str = domain_str;
|
this.domain_str = domain_str;
|
||||||
|
Loading…
Reference in New Issue
Block a user