模糊查询的几种实现方式

mysql层

like%全模糊%搜索,使用覆盖索引,有效,但要考虑索引所占空间,查询的字段少还可以

web 层

前端模糊查询,给后端精确结果,数据量大前端撑不住。如果某个模糊匹配条件字符串很长,同时数据量又比较大(w以上),那这个搜索做前端模糊一定会占用很多浏览器内存且卡顿;但另一种情况是,有多个搜索条件,但是每个条件只有几个字符,且数据量还可接收,这种情况下模糊匹配也是可以的

应用层

后端取全部数据,流过滤匹配。同样,要考虑内存使用问题,如果是分页就更蛋疼了。

中间件层

千万级数据

  • ElasticSearch(开源,有很多功能,所以操作起来也很复杂)
  • Algolia(专有,但有很棒的文档并且非常容易启动和运行)
  • Typesense(开源,提供与 Algolia 相同的模糊搜索功能)
posted @ 2021-08-12 11:35  夜旦  阅读(3586)  评论(0编辑  收藏  举报