sphinx和elasticseach使用感觉

    公司项目须要,要将mysql数据库中的数据快速检索并分词。mysql

    开始使用的是sphinx,这个搜索引擎安装,配置,使用,都比较简单,无需安装其余插件,相对来讲功能比较单一。sql

    对于新增记录,个人处理方法是添加增量索引,按期合并到主索引,这致使索引体积愈来愈大。因为sphinx在运行时是将这些索引放在内存里的,若是索引体积超出内存容量,会致使报错没法执行,因此若是想用sphinx作搜索引擎的话,请务必作好事先规划。数据库

    sphinx的分词器用的是coreseek,做者前段时间网站停了几个月,万幸如今又可使用了,感谢他们的无私奉献。安全

    sphinx的资料国内较少,这算是一个遗憾。elasticsearch

    以后通过讨论,决定将搜索引擎改成elasticsearch,简称ES。分布式

    ES的安装配置就很麻烦了,并且它最常常使用的地方是和logstash、kibana一块儿组成ELK,处理日志,想将mysql中的数据导入,须要借助其余工具。工具

    我我的使用的是logstash的组件input,这种方法对于数据库的删除操做,很难处理。比较看好国人的一个项目,根据mysqldump动态更新,等我有空用过以后,再行评论。性能

    ES比较赞的是分布式功能,分片自动调整,这个正确设置的话,很好用。网站

    缺陷的话ES的安全方面不是很好,虽然5.0版本后有x-pack支持,但也使安装配置麻烦了不少。搜索引擎

    分词用的是ik,我比较习惯粗粒度,细粒度致使索引体积过大了。

    总结一下:sphinx安装配置简单,功能单一,但性能不差,我的比较推荐做为mysql的插件来安装使用(还未有时间尝试)。ES呢,安装配置复杂了不少,功能比较强大,分布式能够进行不少细微调整,就是安全性和传统数据库导入不是很容易,不出意外的话,我最后用的就是ES了。

相关文章
相关标签/搜索