lucene有多種搜尋方式,可以根據需要選擇不同的方式。
1、詞條搜尋(單個關鍵字查詢)
主要物件是termquery
呼叫方式如下:
term term
=new
term(欄位名,搜尋關鍵字);
query query
=new
termquery(term);
hits hits
=searcher.search(query);
2、組合搜尋(允許多個關鍵字組合搜尋)
主要物件是booleanquery
呼叫方式如下:
term term1
=new
term(欄位名,搜尋關鍵字);
termquery query1
=new
termquery(term1);
term term2
=new
term(欄位名,搜尋關鍵字);
termquery query2
=new
termquery(term2);
booleanquery booleanquery
=new
booleanquery();
booleanquery.add(query1,引數)
booleanquery.add(query2,引數)
hits hits
=searcher.search(booleanquery);
此方法中的核心在booleanquery的add方法上,其第二個引數有三個可選值,對應著邏輯上的與或非關係
引數如下:
booleanclause.occur.must 必須包含,類似於邏輯運算的與
booleanclause.occur.must _not 必須不包含,類似於邏輯運算的非
booleanclause.occur.should 可以包含,類似於邏輯運算的或
這三者組合,妙用無窮。
3、範圍搜尋(允許搜尋指定範圍內的關鍵字結果)
主要物件是rangequery
呼叫方式如下:
term term1
=new
term(欄位名,起始值);
term term2
=new
term(欄位名,終止值);
rangequery rangequery
=new
rangequery(term1,term2,引數);
hits hits
=searcher.search(rangequery);
此方法中的引數是boolean型別的,表示是否包含邊界 。
true 包含邊界
false不包含邊界
4、字首搜尋(搜尋起始位置符合要求的結果)
主要物件是prefixquery
呼叫方式如下:
term term
=new
term(欄位名,搜尋關鍵字);
prefixquery prefixquery
=new
prefixquery (term);
hits hits
=searcher.search(prefixquery);
5、短語搜尋(根據零碎的短語組合成新的片語進行搜尋)
主要物件是phrasequery
呼叫方式如下:
term term1
=new
term(欄位名,搜尋關鍵字);
term term2
=new
term(欄位名,搜尋關鍵字);
phrasequery phrasequery
=new
phrasequery();
phrasequery.setslop(引數);
phrasequery.add(term1);
phrasequery.add(term2);
hits hits
=searcher.search(phrasequery);
其中setslop的引數是設定兩個關鍵字之間允許間隔的最大值。
lucene幾種搜尋方式
1.詞條搜尋 實現類 termquery 解釋 單個關鍵字搜尋 實現 termquery query new termquery term 2.組合搜尋 實現類 booleanquery 解釋 允許有多個關鍵字搜尋 實現 booleanquery query new booleanquery que...
lucene搜尋方式(query型別)
出處 感謝作者 lucene有多種搜尋方式,可以根據需要選擇不同的方式。1 詞條搜尋 單個關鍵字查詢 主要物件是termquery 呼叫方式如下 term term new term 欄位名,搜尋關鍵字 query query new termquery term hits hits searche...
lucene搜尋方式(query型別)
lucene有多種搜尋方式,可以根據需要選擇不同的方式。1 詞條搜尋 單個關鍵字查詢 主要物件是termquery 呼叫方式如下 term term new term 欄位名,搜尋關鍵字 query query new termquery term hits hits searcher.search...