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