lucene3 0中檢索方法的使用介紹

2021-05-25 03:10:55 字數 2102 閱讀 8612

queryparser是乙個非常通用的幫助類,他的作用是把使用者輸入的文字轉換為內建的query物件(大多數web搜尋引擎都提供乙個查詢輸入框來讓使用者輸入查詢條件)。queryparser內建提供了很多語法使可以使用輸入的各種高階條件的 query。為了保證查詢的正確性,最好用建立索引檔案時同樣的分析器。queryparser解析字串時,可以指定查詢域,實際可以在字串中指定乙個或多個域。

queryparser呼叫靜態方法parse後會返回query的例項,原子查詢。例如:「title:電視台 source:親親寶寶」會返回booleanquery,「title:電視台」或「電視台」會返回phrasequery,「臺」會返回termquery。 

「title:電視台 site:親親寶寶」 查詢標題為電視台 或者**是親親寶寶

「+title:電視台 site:親親寶寶」 查詢標題必須包含電視台,**是親親寶寶

「-title:電視台 site:親親寶寶」 查詢標題不能包含電視台,**是親親寶寶

string field = "contents";

queryparser parser = new queryparser(version.lucene_current, field,analyzer);

query query = parser.parse(str);

term是搜尋的基本單元。與field物件類似,它由一對字串元素組成:欄位的名稱和字段的值。注意term物件也和索引過程有關。但是它們是由lucene內部生成,所以在索引時你一般不必考慮它們。在搜尋時,你可能建立term物件並與termquery同時使用

query q = new termquery(new term(「contents」, 「lucene」));

lucene內建query物件

termquery:詞條查詢。通過對某個詞條的指定,實現檢索索引中存在該詞條的所有文件。 

booleanquery:布林查詢。lucene中包含邏輯關係:「與」,「或」,「非」的複雜查詢,最終都會表示成booleanquery。布林查詢就是乙個由多個子句和子句之間組成的布林邏輯所組成的查詢。 

rangequery:範圍查詢。這種範圍可以是日期,時間,數字,大小等等。 

prefixquery:字首查詢。 

phrasequery:短語查詢。預設為完全匹配,但可以指定坡度(slop,預設為0)改變範圍。比如slop=1,檢索短語為「電台」,那麼在「電台」中間有乙個字的也可以被查詢出來,比如「電視台」。 

multiphrasequery:多短語查詢。 

fuzzyquery:模糊查詢。模糊查詢使用的匹配演算法是levensh-itein演算法。此演算法在比較兩個字串時,將動作分為3種:加乙個字母(insert),刪乙個字母(delete),改變乙個字母(substitute)。 

wildcardquery:萬用字元查詢。「*」號表示0到多個字元,「?」表示單個字元。 

spanquery:跨度查詢。此類為抽象類。 

spantermquery:檢索效果完全同termquery,但內部會記錄一些位置資訊,供spanquery的其它api使用,是其它屬於spanquery的query的基礎。 

spanfirstquery:查詢方式為從field的內容起始位置開始,在乙個固定的寬度內查詢所指定的詞條。 

spannearquery:功能類似pharasequery。spannearquery查詢所匹配的不一定是短語,還有可能是另乙個spanquery的查詢結果作為整體考慮,進行巢狀查詢。 

spanorquery:把所有spanquery查詢結果綜合起來,作為檢索結果。 

spannotquery:從第乙個spanquery查詢結果中,去掉第二個spanquery查詢結果,作為檢索結果。 

lucene3.0範圍查詢termrangequery

lucene3.0中兩個索引檔案的聯合查詢

lucene3.0分詞結果顯示

lucene3.0正式發布了

lucene3.0 中booleanquery 的使用

lucene3.0中使用multifieldqueryparser多欄位查詢

SQL Server 2000中全文檢索的使用

sql server 2000中全文檢索的使用 1 引言 微軟的sql server資料庫是乙個在中低端企業應用中占有廣泛市場的關係型資料庫系統,它以簡單 方便 易用等特性深得眾多軟體開發人員和資料庫管理人員的鍾愛。但sql server 7.0以前的資料庫系統由於沒有全文檢索功能,致使無法提供像文...

SQL Server 2000中全文檢索的使用

進行全文檢索 where freetext successful life 建立全文索引 go 檢查全文目錄填充情況 while fulltextcatalogproperty ft test populatestatus 0 begin 如果全文目錄正處於填充狀態,則等待30秒後再檢測一次 wai...

SQL Server 2000中全文檢索的使用

微軟的sql server資料庫是乙個在中低端企業應用中占有廣泛市場的關係型資料庫系統,它以簡單 方便 易用等特性深得眾多軟體開發人員和資料庫管理人員的鍾愛。但sql server 7.0以前的資料庫系統由於沒有全文檢索功能,致使無法提供像文字內容查詢此類的服務,成為乙個小小的遺憾。從sql ser...