public class searchutil
// 若只有起始值結束值預設為當天
if ((sdate != null && !"".equals(sdate))
&& (edate == null || "".equals(edate)))
if ((sdate != null && !"".equals(sdate))
&& (edate != null || !"".equals(edate)))
if (key != null && !"".equals(key))
//按條件進行多條件查詢
if ((sdate != null && !"".equals(sdate))
&& (edate != null && !"".equals(edate)) && (key != null)
&& !"".equals(key)) else if ((sdate != null && !"".equals(sdate))
&& (edate != null && !"".equals(edate))) else if (key != null && !"".equals(key)) else
// 索引排序條件
sortfield sortfield = new sortfield ;
sort sort = new sort(sortfield);
topfielddocs docs = searcher.search(booleanquery, null, 1, sort);
int totalnum = docs.totalhits;
docs = searcher.search(booleanquery, null, totalnum, sort);
scoredoc scoredocs = docs.scoredocs;
//高亮設定
******htmlformatter ******htmlformatter = new ******htmlformatter(
"", "");
highlighter highlighter = new highlighter(******htmlformatter,
new queryscorer(query));
// 設定提取字串長度
highlighter.settextfragmenter(new ******fragmenter(58));
if (scoredocs.length == 0) else
// 搜尋完成時間
date endtime = new date();
// 搜尋所耗時間
long timeofsearch = endtime.gettime() - begintime.gettime();
system.out.println("the time for indexsearch is " + timeofsearch
+ " ms");
map.put("list", al);
map.put("time", timeofsearch);
map.put("total", totalnum);
}}catch (exception e) finally catch (ioexception e)
}if (directory != null) catch (ioexception e)
}} return map;
} //測試方法
public static void main(string args) catch (exception e)
}}
Lucene使用Filter搜尋過濾
排序查詢 param querystr 查詢匹配的字串 param domain 查詢內容的域 param filter 過濾器 public void searchbyfilter string querystr,string domain,filter filter else 輸出資訊 scor...
lucene 鏈式過濾器ChainedFliter
1 使用chainedfilter將其它過濾器鏈結起來,在過濾器中執行and or xor和andnot的位操作。3 public class chainedfiltertest extends testcase 4 測試單個過濾器 chaindfilter chain new chainedfil...
Lucene 自定義過濾器Filter
lucene中查詢 query 和過濾 filter 有相似之處,查詢能處理的過濾也可以完成。不同之處在於查詢時帶有評分操作,返回的結果集有相關性評分,而過濾返回的結果集沒有相關性評分,即返回結果是無排序的。特定項範圍過濾器,如 a m 或者 o z termrangefilter filter n...