程序员 第13章 关于全文搜索 程序员 第13章 关于全文搜索

2022-07-18

如果你数据达到 100W 以上直接搜索数据库的话,将会非常非常的慢,即使是 mongodb 也非常慢。

所以这个时候你需要单独的全文搜索引擎。

①、怎么理解全文搜索引擎呢?

如果你项目是一个 MySQL + PHP 开发的,你可以把全文搜索引擎理解为另外一个独立的数据库,每次操作 MySQL 记得把需要全文 搜索的数据同步到全文搜索引擎库中就可以了,当然更新 MySQL 的时候也记得要更新全文搜索引擎库。

②、都有哪些全文搜索引擎可以选择?

目前我知道有 sphinx,ElasticSearch(一下简称es),xunsearch 还有 Coreseek,当然不限于以上几种?

③、简单聊聊

  • sphinx 一个老牌的全文搜索引擎,内存上比 es 要求低,其他功能比 es 就差太多

  • sphinx 算是业余级别,查询语法比较差

  • es 中文分词可以用阿健分词,Ik分词,mmseg分词

  • es 的 shard,是固定的,随着数据量上升,单个分片的数量会爆, 所以需要集群,新增分片后,要做数据迁移

  • es 的插件很丰富

  • 如果是用 Yii 开发的项目,而且数据量也不算很大的情况下,推荐使用 xunsearch,官方对 Yii 做的扩展比较给力

  • Coreseek 是基于老版的 sphinx 开发的,但是对中文支持的比较好,如果担心中文词库的问题可以使用 Coreseek

阅读 816