Lucene的Query類介紹

2022-05-29 21:39:08 字數 4072 閱讀 4552

把lucene的查詢當成sql的查詢,也許會籠統的明白些query的真相了。

查詢分為大致兩類,1:精準查詢。2,模糊查詢。

建立測試資料。

private

directory directory;

private

indexreader reader;

private string ids = ;

private string emails = ;

private string contents =;

private

int attachs = ;

private string names = ;

先建立索引。

1

private mapscores = new hashmap();23

public

searchutil() catch

(ioexception e) 12}

13/**

14* 建立索引

15*/

16 @suppresswarnings("deprecation")

17public

void

index()

37doc.add(field);

38//

新增文件

39writer.adddocument(doc);40}

41 } catch

(exception e) finally

catch

(ioexception e) 51}

52 }

索引建立完畢。

構造方法。

/**

* getsearcher

* @return

*/public

indexsearcher getsearcher()

else

return

newindexsearcher(reader);

} catch

(ioexception e)

return

null

; }

一、精準匹配。1,精準查詢就是查什麼給什麼。

1

/**2

* 精準匹配3*/

2,區間查詢。

3、匹配其索引開始以指定的字串的文件

1

/**2

* 匹配其索引開始以指定的字串的文件3*

4、數字搜尋

/**

* 數字搜尋

* @param

field

* @param

start

* @param

end *

@param

num

*/public

void searchbynums(string field,int start,int end,int

num)

} catch

(exception e)

}

二、模糊匹配

/**

* 萬用字元

* @param

field

* @param

value

* @param

num

*/public

void searchbywildcard(string field,string value,int

num)

} catch

(exception e)

}/*** booleanquery可以連線多個子查詢

* occur.must表示必須出現

* occur.should表示可以出現

* occur.muse_not表示不能出現

* @param

field

* @param

value

* @param

num

*/@suppresswarnings("deprecation")

public

void searchbyboolean(string field,string value,int

num)

indexsearcher searcher =getsearcher();

booleanquery query = null

; topdocs tds = null

;

for(int i = 0;i)

system.out.println("一共查詢:"+tds.totalhits);

for(scoredoc doc:tds.scoredocs)

} catch

(exception e)

}public

void searchbyphrase(int

num)

} catch

(exception e)

}/*** 相似度匹配查詢

* @param

num

*/public

void searchbyfuzzy(int

num)

} catch

(corruptindexexception e)

catch

(ioexception e)

}public

void searchbyqueryparse(query query,int

num)

} catch

(corruptindexexception e)

catch

(ioexception e)

}

理解Lucene中的Query

query是乙個介面,它有很多實現類。queryparser是query解析器,用於將乙個字串解析為乙個query物件,這個query物件可能屬於termquery,也可能屬於phrasequery termquery booleanquery等。可以通過query物件的getclass 方法來檢視...

lucene當中的各種query(二)

multiphrasequery 實現以下功能 字首搜尋 indexsearcher searcher new indexsearcher index store path multiphrasequery query new multiphrasequery query.add new term ...

lucene搜尋方式(query型別)

出處 感謝作者 lucene有多種搜尋方式,可以根據需要選擇不同的方式。1 詞條搜尋 單個關鍵字查詢 主要物件是termquery 呼叫方式如下 term term new term 欄位名,搜尋關鍵字 query query new termquery term hits hits searche...