模糊查询的几种实现方式


mysql层

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

web 层

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

应用层

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

中间件层

千万级数据

  • ElasticSearch(开源,有很多功能,所以操作起来也很复杂)
  • Algolia(专有,但有很棒的文档并且非常容易启动和运行)
  • Typesense(开源,提供与 Algolia 相同的模糊搜索功能)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM