1、MySQL与ElasticSearch的组合使用 假设有一业务场景:现有一电子商务系统需要具备让用户准确的找到自己想要商品的功能,因此怎么也绕不开的就是商品信息的检索了 可以来分析一下,对于一个电商系统而言,商品可能是由一个商品整体描述SPU对应不同的销售单元SKU来构成,同时商品还有对应的品牌信息、商品分类信息等,这些信息都有可能有对应的关联关系
此时,如果用户通过这个电商系统去查找商品,服务器就要根据用户的查找内容去构建对应检索数据的语句,这条语句往往是多表查询的,模糊查询的操作,十分耗费系统资源,更何况是在一些并发情况下,系统的性能就很低了,流程可见下图:
此外,数据库处理分词操作较为吃力,比如检索词为“白色”、“苹果手机”这些词汇,MySQL会将这些词汇与对应检索的数据库表的属性进行匹对得出结果集,但如果是“白色的64GB苹果手机”这样的组合词汇,需要得到的结果往往不能检索。因此,可以使用ElasticSearch全文检索引擎来解决这个问题,使得TB级数据在毫秒级就能返回检索结果,该引擎使用倒排索引,流程优化如下图:
原作者:蟹黄瓜子 GreatSQL社区