**:public static void main(string args) {
try {
indexsearcher search = new indexsearcher("d://demo");
phrasequery query = new phrasequery();
term term1 = new term("bookname","鋼");
term term2 = new term("bookname","鐵");
query.add(term1);
query.add(term2);
query.setslop(2);
hits hits = search.search(query);
for(int i=0;i列印:
document搜尋結果都是鋼和鐵兩字相連,而且順序也一致的文件,即嚴格包含有「鋼鐵」這個短語的文件。
但是有時候使用者會經常的輸漏乙個字或是多輸入乙個字,比如「鋼或鐵」等。
該類提供了乙個setslop(int num)的方式,表示設定坡度,它用於表示片語的兩個字間可以插入無關字數的個數。
這個坡度預設值為0,在預設情況下,它將只給出那些嚴格匹配短語的文件作為查詢結果。比如例子中設定的是2,那麼表示在鋼鐵這兩個字之間可以插入2個無關的字。
Lucene 搜尋方法(多短語搜尋)
短語搜尋解決了短語搜尋的問題,在很多情況下,使用者輸入某個關鍵字時,該關鍵字可以喝多種單字組成短語,例如,使用者輸入乙個 聲 字。它可以和 聲音 宣告 等字組成短語。lucene提供了multiphrasequery來進行多短語搜尋。public static void main string ar...
lucene實現多詞 短語搜尋
不知道這個方法是否可行,我簡單做了個測試。貌似還行。把具體的 貼出來分享給大家。通過paodinganalyzer ik analyzer兩個分詞器來實現。具體分出來的無用的字 比如 的 人 那麼我們可以寫乙個配置檔案。先羅列出一些無用的詞。那麼我們在建立索引的時候。就自動的把這些字給過濾掉。我是這...
Lucene 搜尋方法(範圍搜尋)
在某些情況下,使用者需要查詢一定範圍內的文件,比如時間,id等。package com.querytype import org.apache.lucene.index.term import org.apache.lucene.search.booleanclause import org.apa...