国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看
打開APP
未登錄
開通VIP,暢享免費(fèi)電子書等14項超值服
開通VIP
首頁
好書
留言交流
下載APP
聯(lián)系客服
Lucene大數(shù)據(jù)量的動態(tài)更新問題,用內(nèi)存
wangn
>《我的圖書館》
2010.09.28
關(guān)注
問題:
目前索引里面已經(jīng)有1000多萬的數(shù)據(jù)了,現(xiàn)在需要每幾分鐘就增量得添加新的內(nèi)容到索引中。
但是,我發(fā)現(xiàn)新加入索引后,整個索引結(jié)構(gòu)都要重新調(diào)整。非常耗時(長達(dá)半個小時)。
不知道大家有沒有什么比較好的辦法,加快這個過程?
回答:
我覺得用lucene做,一個原則索引里面盡量少存儲,索引文件小了,optimize要移動的數(shù)據(jù)塊也小。
還有Lucene實在不適合做實時,有一個辦法,將新索引建在內(nèi)存中,新建在內(nèi)存上的searcher與硬盤索引searcher合并為 MutliSearcher提供給前端搜索,內(nèi)存到達(dá)一定量時再后臺合并到主索引上,合并完成用新的Searcher替換MutliSearcher。
Lucene2.3已經(jīng)放出來了,添加了很多新功能,可以去看看
大量索引的更方案: 索引分開, 周索引,月索引,全部索引
提高搜索性能方式
搜索
1、對于按創(chuàng)建時間的排序可以使用doc.id的方式
new SortField(null, SortField.DOC, reverse)排序方式盡量使用INT類型的字段
也就是按照寫入索引的順序排序
2、對于時間字符串的排序可以轉(zhuǎn)換成整數(shù)進(jìn)行排序
3、去掉不必要的parse
使用TermQuery替換
4、TermQuery和Term可以只保留一個實例
createTerm(text)
5、減少Doc到model的轉(zhuǎn)換
索引出來String到Date的轉(zhuǎn)換多余而且費(fèi)時
直接使用Doc對象包裝成JSONObject
6、MultiFieldQueryParser改成自己用boolean查詢重構(gòu)
7、減少請求參數(shù)的包裝類
8、搜索排序方法可以作為常量
將sort參數(shù)變成int型,使用swich進(jìn)行判斷
10、使用HitCollector類來適應(yīng)不同情況下,Hits的大小
新、舊接口
相關(guān)搜索接口
11、使用盡可能快的磁盤IO
12、日志,先寫文件,每天批量入庫
13、增量索引使用reopen
新的reopen()方法只會加載那些變更過的索引片斷,而不是重新加載完整的索引。
14、setMergeFactor 在做實時索引的時候,可以設(shè)置的小一點(diǎn)
這樣就會及時索引進(jìn)去
索引
索引
1、t.termText()替換為new String(t.termBuffer(),0,t.termLength())
2、StringReader 和TokenStream對象都需要close
3、索引時Document只用一個、Field只用幾個
一個Document對象對應(yīng)多個Field實例
Field有新的setValue方法,動態(tài)改變屬性
不能只有一個Field實例
例如:idField, bodyField
必須等Document都到索引中之后,才可以重新設(shè)置值
4、索引中Field的命名只使用2個字符表示
5、有些索引字段可以考慮使用0,1替代字符串,排序采用整數(shù)來排
6、減少索引的存儲字段,一般只存ID
7、索引的時候只用一個IndexWriter對象
8、3.1版本有個新的方法writer.ramSizeInBytes()
根據(jù)RAM的使用情況,來決定是不需要刷新到磁盤。
之前:setMaxBufferedDocs
9、批量索引的時候,盡可能多使用一些內(nèi)存,采用非復(fù)合的文件方式,完成后集中優(yōu)化合并索引文件
fsWriter.addIndexesNoOptimize
fsWriter.setUseCompoundFile(false);
需要注意不要超過系統(tǒng)的允許打開文件數(shù)
10、重復(fù)使用單一的Token實例,在analyzer中。
11、Turn off auto-commit if there are stored fields and term vectors
設(shè)置autoCommit=false,直到writer close之后才會生效
默認(rèn)是true
12、如果總是同時在多個分詞的字段中查詢,可以考慮將多個Field合并到一個Field中
13、增加mergeFactor,但是不要太大
反復(fù)調(diào)試獲取經(jīng)驗值
14、關(guān)閉一些實際上沒用的功能(不要存儲一些不必要的字段,盡量不要打開term vectors)
15、使用更快的analyzer
16、加快獲得document數(shù)據(jù)的速度
比如:從數(shù)據(jù)庫、文件獲取數(shù)據(jù)的速度
17、索引的時候可以考慮使用多線程
使用多線程addDocuments
需要測試,然后確定線程數(shù)
18、可以分開索引,然后合并
并行索引機(jī)制
來源:
聯(lián)索科技
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報
。
打開APP,閱讀全文并永久保存
查看更多類似文章
猜你喜歡
類似文章
Lucene基本適用介紹
lucene爬數(shù)據(jù)庫中的數(shù)據(jù)無非也是查詢數(shù)據(jù)。所有我們用lucene搜索數(shù)據(jù)主要有下面幾個步驟
Lucene入門實例(二)
Matrix - 與 Java 共舞 - 利用Lucene搜索Java源代碼
影響Lucene索引速度原因及提高速度技巧
影響Lucene索引速度原因以及提高索引速度技巧[轉(zhuǎn)]
更多類似文章 >>
生活服務(wù)
首頁
萬象
文化
人生
生活
健康
教育
職場
理財
娛樂
藝術(shù)
上網(wǎng)
留言交流
回頂部
聯(lián)系我們
分享
收藏
點(diǎn)擊這里,查看已保存的文章
導(dǎo)長圖
關(guān)注
一鍵復(fù)制
下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁面
先別劃走!
送你5元優(yōu)惠券,購買VIP限時立減!
5
元
優(yōu)惠券
優(yōu)惠券還有
10:00
過期
馬上使用
×