1
0
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:
gnosygnu 2016-12-22 13:23:46 -05:00
parent 7a2364d12d
commit 8f1c693ec6
4 changed files with 7 additions and 17 deletions

View File

@ -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);
}

View File

@ -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);

View File

@ -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)
;
}

View File

@ -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;