问题描述
最近遇到一个问题,ES中有一个客户标签字段是[1,2,3]这样存储的。产品想同时查询标签为空的和勾选某几个标签的展示出来。
ES对复杂查询的组合还挺恶心的,这个问题困扰了我一整天。
下面将原因和解决方案放出来供参考。
原因分析:
正常对同一个字段既查空,又根据数组用must查询不好使。大概思路是用两个QueryBuilder,各自must,最后用同一个QueryBuilder两次should。并且还要设置minimumShouldMatch(1)
伪代码如下:
解决方案:

如果同时解决了您的业务问题,给个双击😘