素材牛VIP会员
类似京东商品属性复合筛选后端是如何实现的?
 Sm***ty  分类:SQL代码  人气:605  回帖:3  发布于6年前 收藏

后端接收到很多的筛选项,需要到很多不同的表去查询,想问下大家的一般怎么解决?
麻烦稍微讲详细点,普通的简单搜索直接join表就可以了,但是如果有些筛选项太多,涉及一些复杂点的逻辑才能查出结果呢?
我暂时想分成多个小查询最后取交集来实现,但是感觉也不科学,请赐教。

 标签:mysql

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv5 码农
雷***g 学生 6年前#1

elasticSearch是个不错的选择

Lv3 码奴
65***14 PHP开发工程师 6年前#2

思路上是对的,对于这种复杂的搜索一般都是采用“倒排索引”的方式进行处理,楼上说的 ES 其实背后这个思想。

事先将各个子集存储在缓存中,根据条件只要对相应子集进行交并集操作,就能快速的得出你想要的结果。

我这里有一篇,通过 redis 实现你上述需求的文章,链接: https://github.com/jasonGeng8...。

具体选用什么,还是根据你的业务场景,数据体量和开发成本来综合考虑吧。

Lv4 码徒
青***e Linux系统工程师 6年前#3

用搜索引擎咯

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取