是否分析:是否對域的內容進行分詞處理。前提是我們要對域的內容進行查詢。
是否索引:將field分析後的詞或整個field值進行索引,只有索引方可搜尋到。
比如:商品名稱、商品簡介分析後進行索引,訂單號、身份證號不用分析但也要索引,這些將來都要作為查詢條件。
是否儲存:將field值儲存在文件中,儲存在文件中的field才可以從document中獲取
比如:商品名稱、訂單號,凡是將來要從document中獲取的field都要儲存。
是否儲存的標準:是否要將內容展示給使用者field類
資料型別
analyzed是否分析
indexed是否索引
stored是否儲存
說明stringfield(fieldname, fieldvalue,store.yes))
字串nyy或n
這個field用來構建乙個字串field,但是不會進行分析,會將整個串儲存在索引中,比如(訂單號,姓名等)是否儲存在文件中用store.yes或store.no決定
longpoint(string name, long… point)
long型yy
n可以使用longpoint、intpoint等型別儲存數值型別的資料。讓數值型別可以進行索引。但是不能儲存資料,如果想儲存資料還需要使用storedfield。
storedfield(fieldname, fieldvalue)
過載方法,支援多種型別nn
y這個field用來構建不同型別field不分析,不索引,但要field儲存在文件中。
textfield(fieldname, fieldvalue, store.no)或textfield(fieldname, reader))
字串或流yy
y或n如果是乙個reader, lucene猜測內容比較多,會採用unstored的策略.
//新增索引
@test
public
void
adddocument()
throws exception
//刪除全部索引
@test
public
void
deleteallindex()
throws exception
說明:將索引目錄的索引資訊全部刪除,直接徹底刪除,無法恢復。
//根據查詢條件刪除索引
@test
public
void
deleteindexbyquery()
throws exception
原理就是先刪除後新增。
//修改索引庫
@test
public
void
updateindex()
throws exception
對要搜尋的資訊建立query查詢物件,lucene會根據query查詢物件生成最終的查詢語法,類似關聯式資料庫sql語法一樣lucene也有自己的查詢語法,比如:「name:lucene」表示查詢field的name「lucene」的文件資訊。
可通過兩種方法建立查詢物件:
1)使用lucene提供query子類
2)使用queryparse解析查詢表示式
//使用termquery查詢
@test
public
void
testtermquery()
throws exception
//關閉indexreader
indexsearcher.
getindexreader()
.close()
;}
@test
public
void
testrangequery()
throws exception
private
void
printresult
(query query, indexsearcher indexsearcher)
throws exception
//關閉indexreader
indexsearcher.
getindexreader()
.close()
;}
通過queryparser也可以建立query,queryparser提供乙個parse方法,此方法可以直接根據查詢語法來查詢。query物件執行的查詢語法可通過system.out.println(query);查詢。
需要使用到分析器。建議建立索引時使用的分析器和查詢索引時使用的分析器要一致。
需要加入queryparser依賴的jar包。
//關閉indexreader
indexsearcher.
getindexreader()
.close()
;}
Lucene索引庫的維護
公共 提取,下面的例子會用到的方法 提取公共 獲得indexwrite物件 public indexwriter getindexwriter throws ioexception和建立索引庫一樣 test public void addindex throws ioexception test p...
Lucene索引維護 四
新增索引 test public void adddocument throws exception 2.1 刪除全部 test public void testindexdeleteall throws exception說明 將索引目錄的索引資訊全部刪除,直接徹底刪除,無法恢復。2.2 根據條件...
Lucene索引庫的維護功能實現
向索引庫中新增document物件。第一步 先建立乙個indexwriter物件 第二步 建立乙個document物件 第三步 把document物件寫入索引庫 第四步 關閉indexwriter。新增索引 test public void adddocument throws exception ...