我的文档中有以下字段和值,并试图获取ids
,它们都与我的输入查询不匹配。
请找到我的弹性搜索索引中包含的文档。
id region
1001 MEA
1002 MEA
1003 EUR
1004 MEA
1005 EUR
1006 AF
我想过滤与区域MEA
不匹配的ID。
我期望得到如下结果。
id region
1003 EUR
1005 EUR
1006 AF
到目前为止,我正在使用以下查询
QueryBuilder regionQB = QueryBuilders.boolQuery()
.must(QueryBuilders.termsQuery("catalog_product_id", catalog_product_id_list))
.filter(QueryBuilders.termQuery("region_id", "MEA"));
给出所有匹配的结果(区域MEA
)。
答案 0 :(得分:1)
用于过滤与区域“ MEA”不匹配的ID
您可以使用 mustNot()来代替filter()
。
请参考以下代码,
QueryBuilder regionQB = QueryBuilders.boolQuery()
.must(QueryBuilders.termsQuery("catalog_product_id", catalog_product_id_list))
.mustNot(QueryBuilders.termQuery("region_id", "MEA"));