lucene的多種搜尋

2021-04-16 07:12:50 字數 2529 閱讀 7687

lucene的搜尋相當強大,它提供了很多輔助查詢類,各自完成一種特殊的查詢,也可以相互組合使用,來完成一些複雜的操作.

public

class test   

// 按詞條搜尋

public

void termsearcher() throws ioexception   

// 短語搜尋 

public

void phrasesearcher() throws ioexception   

// 萬用字元搜尋 wildcardquery   

// 萬用字元包括』?』匹配乙個任意字元和』*』匹配零個或多個任意字元,例如你搜尋』use*』,你可能找到』user』或者』uses』:   

public

void wildcardsearcher() throws ioexception   

// 模糊搜尋 fuzzyquery

public

void fuzzysearcher() throws ioexception   

// 使用字首prefixquery

public

void prefixsearcher() throws ioexception   

// 範圍搜尋 rangequery

public

void rangesearcher() throws ioexception   

// 與或搜尋booleanquery

//booleanclause用於表示布林查詢子句關係的類,包括:booleanclause.occur.must,booleanclause.occur.must_not,booleanclause.occur.should。有以下6種組合:

//1.must和must:取得連個查詢子句的交集。

//2.must和must_not:表示查詢結果中不能包含must_not所對應得查詢子句的檢索結果。

//3.must_not和must_not:無意義,檢索無結果。

//4.should與must、should與must_not:should與must連用時,無意義,結果為must子句的檢索結果。與must_not連用時,功能同must。

//5.should與should:表示「或」關係,最終檢索結果為所有檢索子句的並集。

public

void booleansearcher() throws ioexception, parseexception   

// 多關鍵的搜尋 phraseprefixquery

public

void phraseprefixsearcher() throws ioexception);   

// 只有一項必須匹配

query.add(new term("content","help"));   

// if you would like to help promote openoffice

// can i help you

// slop因子的作用域為查詢中的所有短語

query.setslop(1

);   

// 匹配第一項為 would 或 can 第二項為help

// solp設定為1 

// if you would like to help promote openoffice  除去if to 外,would與help的距離=1

// can i help you 的距離也=1  所以可以搜尋出兩條資料

hits hits = search.search(query);   

printresult(hits);   

search.close();   

}   

// 在多個域上查詢 multifieldqueryparser

public

void multifieldsearcher() throws ioexception, parseexception,new string, analyzer);

// titile必須匹配bb,content不能匹配

query query = multifieldqueryparser.parse( new string,new string,new booleanclause.occur, analyzer);   

// title中必須包含bb  content不能有bb

// query query = multifieldqueryparser.parse( "bb*",new string,new booleanclause.occur, analyzer);

hits hits = search.search(query);   

printresult(hits);   

search.close();   

}   

public

void printresult(hits hits) throws ioexception   

}   

}  

lucene的多種搜尋

lucene的搜尋相當強大,它提供了很多輔助查詢類,各自完成一種特殊的查詢,也可以相互組合使用,來完成一些複雜的操作.public class test 按詞條搜尋 public void termsearcher throws ioexception 短語搜尋 public void phrase...

Lucene實現多種高階搜尋形式

布林操作符 大多數的搜尋引擎都會提供布林操作符讓使用者可以組合查詢,典型的布林操作符有 and,or,not。lucene 支援 5種布林操作符,分別是 and,or,not,加 減 接下來我會講述每個操作符的用法。or 如果你要搜尋含有字元 a 或者 b 的文件,那麼就需要使用 or操作符。需要記...

LUCENE搜尋 雞蛋

query 這是乙個抽象類,他有多個實現,比如 termquery,booleanquery,prefixquery.這個類的目的是把使用者輸入的查詢字串封裝成 lucene 能夠識別的 query。term termquery termquery 是抽象類 query 的乙個子類,它同時也是 lu...