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:
parent
0d1b478aa2
commit
5fef0af3a5
@ -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);
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user