mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Search: Change Search_suggest to use auto-wildcard behavior of Special_search; Remove 'simple_search' url_arg
This commit is contained in:
parent
7a2364d12d
commit
8f1c693ec6
@ -37,7 +37,7 @@ public class Srch_htmlbar_mgr implements Gfo_invk {
|
||||
addon = Srch_search_addon.Get(wiki);
|
||||
}
|
||||
// tab_close_mgr.Add(this);
|
||||
Srch_search_qry qry = Srch_search_qry.New__suggest_box(wiki, wiki.App().Addon_mgr().Itms__search__special().Ns_mgr(), results_max, search_bry);
|
||||
Srch_search_qry qry = Srch_search_qry.New__suggest_box(wiki, wiki.App().Addon_mgr().Itms__search__special().Ns_mgr(), wiki.App().Addon_mgr().Itms__search__special().Auto_wildcard(), results_max, search_bry);
|
||||
Srch_rslt_cbk__suggest_box cbk = new Srch_rslt_cbk__suggest_box(wiki.Appe(), cbk_func, search_bry);
|
||||
addon.Search(qry, cbk);
|
||||
}
|
||||
|
@ -37,14 +37,13 @@ public class Srch_search_qry {
|
||||
public static Srch_search_qry New__url_bar(Xow_wiki wiki, Srch_ns_mgr ns_mgr, Srch_crt_scanner_syms syms, boolean auto_wildcard, int max_results, byte[] search_orig) {
|
||||
return new Srch_search_qry(Tid__url_bar, ns_mgr, Srch_search_phrase.New(wiki.Case_mgr(), syms, auto_wildcard, search_orig), 0, max_results);
|
||||
}
|
||||
public static Srch_search_qry New__suggest_box(Xow_wiki wiki, Srch_ns_mgr ns_mgr, int results_max, byte[] search_orig) {
|
||||
return new Srch_search_qry(Tid__suggest_box, ns_mgr, Srch_search_phrase.New(wiki.Case_mgr(), Srch_crt_scanner_syms.Dflt, Bool_.Y, search_orig), 0, results_max);
|
||||
public static Srch_search_qry New__suggest_box(Xow_wiki wiki, Srch_ns_mgr ns_mgr, boolean auto_wildcard, int results_max, byte[] search_orig) {
|
||||
return new Srch_search_qry(Tid__suggest_box, ns_mgr, Srch_search_phrase.New(wiki.Case_mgr(), Srch_crt_scanner_syms.Dflt, auto_wildcard, search_orig), 0, results_max);
|
||||
}
|
||||
public static Srch_search_qry New__search_page(Xow_domain_itm[] domains, Xow_wiki wiki, Srch_ns_mgr ns_mgr, boolean simple_search, byte[] search_orig, int slab_idx, int slab_len) {
|
||||
public static Srch_search_qry New__search_page(Xow_domain_itm[] domains, Xow_wiki wiki, Srch_ns_mgr ns_mgr, boolean auto_wildcard, byte[] search_orig, int slab_idx, int slab_len) {
|
||||
int slab_bgn = slab_idx * slab_len;
|
||||
int slab_end = slab_bgn + slab_len;
|
||||
boolean wildcard = simple_search;
|
||||
return new Srch_search_qry(Tid__search_page, ns_mgr, Srch_search_phrase.New(wiki.Case_mgr(), Srch_crt_scanner_syms.Dflt, wildcard, search_orig), slab_bgn, slab_end);
|
||||
return new Srch_search_qry(Tid__search_page, ns_mgr, Srch_search_phrase.New(wiki.Case_mgr(), Srch_crt_scanner_syms.Dflt, auto_wildcard, search_orig), slab_bgn, slab_end);
|
||||
}
|
||||
public static Srch_search_qry New__drd(Xow_wiki wiki, Srch_ns_mgr ns_mgr, byte[] search_orig, int slab_bgn, int slab_end) {
|
||||
return new Srch_search_qry(Tid__android, ns_mgr, Srch_search_phrase.New(wiki.Case_mgr(), Srch_crt_scanner_syms.Dflt, Bool_.Y, search_orig), slab_bgn, slab_end);
|
||||
|
@ -24,13 +24,11 @@ public class Srch_qarg_mgr {
|
||||
public byte[] Search_raw() {return search_raw;} private byte[] search_raw; public Srch_qarg_mgr Search_raw_(byte[] v) {search_raw = v; return this;}
|
||||
public int Slab_idx() {return slab_idx;} private int slab_idx;
|
||||
public byte[] Cancel() {return cancel;} private byte[] cancel;
|
||||
public boolean Simple_search() {return simple_search;} private boolean simple_search;
|
||||
public Srch_qarg_mgr Clear() {
|
||||
ns_mgr.Clear();
|
||||
this.search_raw = null;
|
||||
this.slab_idx = 0;
|
||||
this.cancel = null;
|
||||
this.simple_search = false;
|
||||
return this;
|
||||
}
|
||||
public void Parse(Gfo_qarg_itm[] qargs_ary) {
|
||||
@ -49,7 +47,6 @@ public class Srch_qarg_mgr {
|
||||
case Uid__search: this.search_raw = Bry_.Replace(qarg.Val_bry(), Byte_ascii.Plus, Byte_ascii.Space); break;
|
||||
case Uid__slab_idx: this.slab_idx = Bry_.To_int_or(qarg.Val_bry(), 0); break;
|
||||
case Uid__cancel: this.cancel = qarg.Val_bry(); break;
|
||||
case Uid__simple_search: this.simple_search = Bry_.Eq(qarg.Val_bry(), Bool_.Y_bry); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
@ -57,12 +54,11 @@ public class Srch_qarg_mgr {
|
||||
ns_mgr.Add_main_if_empty();
|
||||
}
|
||||
private static byte[] Ns_bry = Bry_.new_a7("ns");
|
||||
private static final byte Uid__search = 0, Uid__slab_idx = 1, Uid__cancel = 2, Uid__simple_search = 3;
|
||||
private static final byte Uid__search = 0, Uid__slab_idx = 1, Uid__cancel = 2;
|
||||
public static final byte[] Bry__slab_idx = Bry_.new_a7("xowa_page_index"), Bry__cancel = Bry_.new_a7("cancel");
|
||||
private static final Hash_adp_bry qarg_regy = Hash_adp_bry.ci_a7()
|
||||
.Add_str_byte("search" , Uid__search)
|
||||
.Add_bry_byte(Bry__slab_idx , Uid__slab_idx)
|
||||
.Add_bry_byte(Bry__cancel , Uid__cancel)
|
||||
.Add_str_byte("simple_search" , Uid__simple_search)
|
||||
;
|
||||
}
|
||||
|
@ -41,11 +41,6 @@ public class Srch_special_page implements Xow_special_page {
|
||||
qargs_mgr.Search_raw_(search_raw);
|
||||
}
|
||||
if (Bry_.Len_eq_0(search_raw)) return; // emptry String; exit now, else null ref error; DATE:2015-08-11
|
||||
if ( search_cfg.Auto_wildcard() // add * automatically if option set
|
||||
&& wiki.Db_mgr().Tid() == gplx.xowa.wikis.dbs.Xodb_mgr_sql.Tid_sql // only apply to sql
|
||||
&& Bry_find_.Find_fwd(search_raw, Srch_search_addon.Wildcard__star) == -1 // search term does not have asterisk
|
||||
)
|
||||
search_raw = Bry_.Add(search_raw, Srch_search_addon.Wildcard__star);
|
||||
|
||||
// get page directly from url
|
||||
boolean fulltext_invoked = url.Qargs_mgr().Match(Qarg__fulltext, Qarg__fulltext__y);
|
||||
@ -65,7 +60,7 @@ public class Srch_special_page implements Xow_special_page {
|
||||
}
|
||||
page.Html_data().Html_restricted_n_();
|
||||
page.Html_data().Xtn_search_text_(search_raw);
|
||||
Srch_search_qry qry = Srch_search_qry.New__search_page(search_domain_ary, wiki, wiki.App().Addon_mgr().Itms__search__special().Ns_mgr(), qargs_mgr.Simple_search(), search_raw, qargs_mgr.Slab_idx(), search_cfg.Results_per_page());
|
||||
Srch_search_qry qry = Srch_search_qry.New__search_page(search_domain_ary, wiki, wiki.App().Addon_mgr().Itms__search__special().Ns_mgr(), search_cfg.Auto_wildcard(), search_raw, qargs_mgr.Slab_idx(), search_cfg.Results_per_page());
|
||||
search_mgr.Search(wiki, page, search_cfg.Async_db(), search_domain_ary, qry);
|
||||
}
|
||||
// page found; return it;
|
||||
|
Loading…
Reference in New Issue
Block a user