mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Full-text search: Add searcher_type
This commit is contained in:
parent
4360e42e95
commit
ab1b9f7509
@ -17,5 +17,6 @@ package gplx.xowa.addons.wikis.fulltexts.searchers.mgrs; import gplx.*; import g
|
||||
import gplx.xowa.addons.wikis.fulltexts.searchers.caches.*;
|
||||
import gplx.xowa.addons.wikis.fulltexts.searchers.mgrs.uis.*;
|
||||
public interface Xofulltext_searcher {
|
||||
boolean Type_is_lucene();
|
||||
void Search(Xofulltext_searcher_ui ui, Xow_wiki wiki, Xofulltext_cache_qry qry, Xofulltext_args_qry qry_args, Xofulltext_args_wiki wiki_args);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ public class Xofulltext_searcher__brute implements Xofulltext_searcher {
|
||||
private final Xofulltext_finder_mgr finder = new Xofulltext_finder_mgr();
|
||||
private final Xofulltext_finder_cbk__eval cbk_eval = new Xofulltext_finder_cbk__eval();
|
||||
private final Xofulltext_finder_cbk__highlight cbk_highlight = new Xofulltext_finder_cbk__highlight();
|
||||
public boolean Type_is_lucene() {return false;}
|
||||
public void Search(Xofulltext_searcher_ui ui, Xow_wiki wiki, Xofulltext_cache_qry qry, Xofulltext_args_qry args, Xofulltext_args_wiki wiki_args) {
|
||||
// get pages from db
|
||||
Db_conn page_conn = wiki.Data__core_mgr().Tbl__page().Conn();
|
||||
|
@ -24,6 +24,7 @@ import gplx.xowa.addons.wikis.fulltexts.searchers.mgrs.uis.*;
|
||||
import gplx.xowa.addons.wikis.fulltexts.searchers.caches.*;
|
||||
public class Xofulltext_searcher__lucene implements Xofulltext_searcher {
|
||||
private final Gflucene_searcher_mgr searcher = new Gflucene_searcher_mgr();
|
||||
public boolean Type_is_lucene() {return true;}
|
||||
public void Search(Xofulltext_searcher_ui ui, Xow_wiki wiki, Xofulltext_cache_qry qry, Xofulltext_args_qry args, Xofulltext_args_wiki wiki_args) {
|
||||
// create lists
|
||||
Ordered_hash full_list = Ordered_hash_.New();
|
||||
|
@ -25,9 +25,10 @@ public class Xofulltext_searcher_ui {
|
||||
this.cbk_mgr = cbk_mgr;
|
||||
this.cbk_trg = cbk_trg;
|
||||
}
|
||||
public void Send_wiki_add(byte[] wiki, int rng_bgn, int rng_end) {
|
||||
public void Send_wiki_add(boolean type_is_lucene, byte[] wiki, int rng_bgn, int rng_end) {
|
||||
cbk_mgr.Send_json(cbk_trg, "xo.fulltext_searcher.results__wiki__add__recv", gplx.core.gfobjs.Gfobj_nde.New()
|
||||
.Add_bry("wiki", wiki)
|
||||
.Add_bool("type_is_lucene", type_is_lucene)
|
||||
.Add_int("rng_bgn", rng_bgn + List_adp_.Base1)
|
||||
.Add_int("rng_end", rng_end)
|
||||
);
|
||||
|
@ -84,7 +84,8 @@ class Xofulltext_searcher_svc implements Gfo_invk {
|
||||
// get wiki and notify
|
||||
byte[] wiki_domain = wiki_args.wiki;
|
||||
Xow_wiki wiki = app.Wiki_mgri().Get_by_or_make_init_y(wiki_domain);
|
||||
ui.Send_wiki_add(wiki_domain, wiki_args.bgn, wiki_args.end());
|
||||
Xofulltext_searcher searcher = Get_searcher(wiki);
|
||||
ui.Send_wiki_add(searcher.Type_is_lucene(), wiki_domain, wiki_args.bgn, wiki_args.end());
|
||||
|
||||
// try to get from cache
|
||||
byte[] qry_key = args.Qry_key(wiki_domain, wiki_args.ns_ids);
|
||||
@ -107,8 +108,6 @@ class Xofulltext_searcher_svc implements Gfo_invk {
|
||||
}
|
||||
args.qry_id = qry_id;
|
||||
|
||||
// do search
|
||||
Xofulltext_searcher searcher = Get_searcher(wiki);
|
||||
searcher.Search(ui, wiki, qry, args, wiki_args);
|
||||
ui.Send_done();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user