Lucene 搜尋方法(短語搜尋)

2021-08-31 04:17:59 字數 667 閱讀 9875

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