后端接收到很多的筛选项,需要到很多不同的表去查询,想问下大家的一般怎么解决?麻烦稍微讲详细点,普通的简单搜索直接join表就可以了,但是如果有些筛选项太多,涉及一些复杂点的逻辑才能查出结果呢?我暂时想分成多个小查询最后取交集来实现,但是感觉也不科学,请赐教。
elasticSearch是个不错的选择
思路上是对的,对于这种复杂的搜索一般都是采用“倒排索引”的方式进行处理,楼上说的 ES 其实背后这个思想。
事先将各个子集存储在缓存中,根据条件只要对相应子集进行交并集操作,就能快速的得出你想要的结果。
我这里有一篇,通过 redis 实现你上述需求的文章,链接: https://github.com/jasonGeng8...。
具体选用什么,还是根据你的业务场景,数据体量和开发成本来综合考虑吧。
用搜索引擎咯