麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

lucene并行建索引解決方案

2019-11-18 16:39:20
字體:
來源:轉載
供稿:網友

背景:單線程為30萬條數據建索引花了10分鐘,為了提高效率采用多線程

起初我采用多個線程共享一個indexwriter實例(也意味著往同一個目錄寫索引),這是luceneinaction和lucenewiki的推薦做法,不知道到為什么總是報FileNotFoundException,很讓人困惑。偶爾會成功一次。這個錯誤讓我想起另外一個問題,就是在建索引的時候搜索也會報這個
錯誤,luceneinaction明明也說了建索引讀的時候沒問題。

言歸正傳,我第二次嘗試使用每個線程單獨擁有自己的indexwriter實例,但往同一個目錄寫索引,果然報了
寫鎖的錯,這和書上說的很一致。

最后沒辦法了,我使用每個線程單獨使用自己的實例,往自己的目錄寫索引,最后一個干完的線程將所有的索引合并比如我開了4個線程,那么就有5個目錄build_index,build_index1,build_index2,build_index3,build_index4線程1往build_index1中寫,線程往build_index2,。。。依次類推,最后一個干完的將build_index1-4目錄的索引合并到build_index.

我開了4個線程嘗試發現也要花大概7-8分鐘,合并索引的過程非常快20秒左右。
開了10個線程,整個過程需要6分多鐘,合并索引也只花了21秒。

似乎效果并不明顯,這因該是因為數據量還不夠大引起的,數據量越大,并行的優勢會越明顯

可見合并索引的過程非常快,這又提供了另外的好處,我們通常將build_index作為搜索目錄,就像上面說的那樣,建索引的過程會影響搜索(雖然按照書上說是不影響的),如果我們采用這種方案,建索引的絕大部分過程其實與build_index目錄無關,只有最后合并的時候需要用到build_index,但那個過程又非常的快速,所以可以極大的緩解建索引給搜索帶來的問題。

如果條件允許,你可以擴展一下這個方案,將多線程索引升級為多臺機器同時建。
http://blog.csdn.net/pwlazy/archive/2007/02/16/1511097.aspx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美一区二区精品夜夜嗨 | 特级毛片免费 | 国产精品免费小视频 | 久久久久久久久久久亚洲 | 久久影片 | 欧美成人精品一区二区三区 | 国产成视频在线观看 | 日韩精品久久久久久久九岛 | 成人免费自拍视频 | 国产精品欧美久久久久一区二区 | 亚洲草逼视频 | 一二区电影 | 亚洲第一成人在线 | 爱逼av | 97人人草| 国产精品成年片在线观看, 激情小说另类 | 欧美巨根| 中国女人内谢69xxxx天美 | 在线a免费观看 | av免费在线观看不卡 | 91短视频在线视频 | 羞羞视频入口 | 亚洲第一成网站 | 成人午夜精品久久久久久久蜜臀 | 美国一级毛片片aa久久综合 | 国产1区2 | 久久男人视频 | 色妞视频男女视频 | 欧美性生活网站 | 亚洲精品在线观看免费 | 久久久久久久久久亚洲 | 五月天影院,久久综合, | 电影一级毛片 | 日本在线观看视频网站 | 国产成人在线网站 | 九九精品在线观看视频 | 爱福利视频| 久久视频精品 | 国产精品一区网站 | 毛片视频免费观看 | 久久噜噜噜精品国产亚洲综合 |