Lucene搜尋優化技巧 索引篇

2021-08-22 15:25:36 字數 1214 閱讀 7727

索引

1、t.termtext()替換為new string(t.termbuffer(),0,t.termlength())

2、stringreader 和tokenstream物件都需要close

3、索引時document只用乙個、field只用幾個

乙個document物件對應多個field例項

field有新的setvalue方法,動態改變屬性

不能只有乙個field例項

例如:idfield, bodyfield

必須等document都到索引中之後,才可以重新設定值

4、索引中field的命名只使用2個字元表示

5、有些索引字段可以考慮使用0,1替代字串,排序採用整數來排

6、減少索引的儲存字段,一般只存id

7、索引的時候只用乙個indexwriter物件

8、3.1版本有個新的方法writer.ramsizeinbytes()

根據ram的使用情況,來決定是不需要重新整理到磁碟。

之前:setmaxbuffereddocs

9、批量索引的時候,盡可能多使用一些記憶體,採用非復合的檔案方式,完成後集中優化合併索引檔案

fswriter.addindexesnooptimize

fswriter.setusecompoundfile(false);

需要注意不要超過系統的允許開啟檔案數

10、重複使用單一的token例項,在analyzer中。

11、turn off auto-commit if there are stored fields and term vectors

設定autocommit=false,直到writer close之後才會生效

預設是true

12、如果總是同時在多個分詞的字段中查詢,可以考慮將多個field合併到乙個field中

13、增加mergefactor,但是不要太大

反覆除錯獲取經驗值

14、關閉一些實際上沒用的功能(不要儲存一些不必要的字段,盡量不要開啟term vectors)

15、使用更快的analyzer

16、加快獲得document資料的速度

比如:從資料庫、檔案獲取資料的速度

17、索引的時候可以考慮使用多執行緒

使用多執行緒adddocuments

需要測試,然後確定執行緒數

18、可以分開索引,然後合併

並行索引機制

lucene 高階搜尋篇

一,概念 1 lucene相關排序流程 2 lucene相關類 query類 乙個抽象類,lucene檢索結果最終評分的總控制中心。其它評分有關的類和物件都是由 query類來管理和生產。weight類介面 定義 query權重計算的乙個實現介面,可以被重用。weight類可以用來生成 scorer...

lucene搜尋索引

官方demo,裡面思路也算清晰,也可以執行 lucene 6.3.0建立索引 public class searchfiles string index index string field contents string queries null int repeat 0 boolean raw ...

搜尋引擎 lucene

lucene簡介 搜尋引擎的幾個概念 倒排 倒排索引 inverted index 也稱為反向索引,是搜尋引擎中最常見的資料結構,幾乎所有的搜尋引擎都會使用到倒排索引,它將文件中的詞作為關鍵字,建立詞與文件的對映關係,通過對倒排索引的檢索,可以根據詞快速獲取包含這個詞的文件列表,這對於搜尋引擎來說至...