關於全文檢索系統設計我的思考

全文搜索大體分爲:數據採集,索引,搜索。

我認爲最重要的是搜索效果,大體表現在準確性,搜索結果排序,穩定,速度。準確和分詞相關,排序是如何讓最適合的結果出現在最前面,穩定這裏指索引和搜索時的穩定,速度指索引,搜索使用以及維護。
當然這一切加上硬件,人力綜合成一個性價比,這個值決定了最終使用哪個搜索架構(像我這樣的懶人通常會基於一些現有的東西,在上面堆砌來完成)

基本確定後,就會寫更加細的測試代碼,根據數據特性,業務特性進行優化,充分利用硬件發揮其特性。以lucene索引部分爲例就是addDoc,updateDoc,deleteDoc,commit,optimize效率,分詞速度,內存佔用,硬盤佔用等方面的細節數字。測試以真實數據爲佳,切忌以別人的數據爲準,因爲他的情況不一定適用你。

有了上述測試數字,就能比較準確的設計適合自己業務的搜索系統,和業務設計的溝通貫徹整個過程,這裏尤爲重要。對其中涉及的難點,應該做一定測試,確保設計的系統是最適合的。這一過程中可能要借用其他第三方開源程序來補充時,那麼就需要衡量使用它的收穫和付出是否合算。

然後就是模型搭建,業務測試,壓力測試。

最後上線,維護。

每個過程尋找瓶頸而不是提速,功能分離很重要,即便因此犧牲了部分性能和資源也值得。因爲上線只是個開始,如何優化是接下來問題了,因爲有了分離,測試優化就有了機會。
發佈了43 篇原創文章 · 獲贊 0 · 訪問量 2243
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章