Lucene 搜尋方式

2021-08-30 07:17:14 字數 2079 閱讀 7367

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...