这是我的es文档结构
admin_faq
- faq_id
- title
- is_active
案例1过滤器用逗号分隔 FAQ id's 2,3,4.
分割id正在使用
String[] array = assignedCategories.split(",");
for (String value : array) {
queryBuilderPost.should(QueryBuilders.termsQuery("faq_id", value));
}
在案例1中,这个查询对我来说运行良好,并且只显示faq id所在的faq 2,3,4
案例2当我有另一个过滤器时,比如is\u active,它返回所有数据,其中is\u active=y,并且还与逗号分隔的id的faq相关
String[] array = assignedCategories.split(",");
for (String value : array) {
queryBuilderPost.should(QueryBuilders.termsQuery("faq_id", value));
}
queryBuilderPost.must(QueryBuilders.termsQuery("is_active", isActive));
注意:我只希望从带有活动记录的逗号分隔ID获取数据。你可以说它像 OR
mysql中的条件。我们需要把它改成我正在努力但不为我工作的状态。
1条答案
按热度按时间2ul0zpep1#
你可以替换
must
与filter
.或者,您只需要另一层
bool
查询。然后使用
bool
作为你的问题。