sphinx和elasticseach使用感受


    公司項目需要,要將mysql數據庫中的數據快速檢索並分詞。

    開始使用的是sphinx,這個搜索引擎安裝,配置,使用,都比較簡單,無需安裝其他插件,相對來說功能比較單一。

    對於新增記錄,我的處理方法是添加增量索引,定期合並到主索引,這導致索引體積越來越大。由於sphinx在運行時是將這些索引放在內存里的,如果索引體積超出內存容量,會導致報錯無法執行,所以如果想用sphinx做搜索引擎的話,請務必做好事先規划。

    sphinx的分詞器用的是coreseek,作者前段時間網站停了幾個月,萬幸現在又可以使用了,感謝他們的無私奉獻。

    sphinx的資料國內較少,這算是一個遺憾。

    之后經過討論,決定將搜索引擎改為elasticsearch,簡稱ES。

    ES的安裝配置就很麻煩了,而且它最經常使用的地方是和logstash、kibana一起組成ELK,處理日志,想將mysql中的數據導入,需要借助其他工具。

    我個人使用的是logstash的組件input,這種方法對於數據庫的刪除操作,很難處理。比較看好國人的一個項目,根據mysqldump動態更新,等我有空用過之后,再行評論。

    ES比較贊的是分布式功能,分片自動調整,這個正確設置的話,很好用。

    缺陷的話ES的安全方面不是很好,雖然5.0版本后有x-pack支持,但也使安裝配置麻煩了很多。

    分詞用的是ik,我比較習慣粗粒度,細粒度導致索引體積過大了。

    總結一下:sphinx安裝配置簡單,功能單一,但性能不差,個人比較推薦作為mysql的插件來安裝使用(還未有時間嘗試)。ES呢,安裝配置復雜了很多,功能比較強大,分布式可以進行很多細微調整,就是安全性和傳統數據庫導入不是很容易,不出意外的話,我最后用的就是ES了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM