我的文档中包含以下字段和值,并试图获取与我的输入查询都不匹配的ids
。
请找到我的 Elasticsearch 索引中包含的文档。
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"));
给出所有匹配的结果(region
MEA
)。 最佳答案
用于过滤与区域“MEA”不匹配的ID
您可以使用 mustNot()来代替filter()
。
请引用下面的代码,
QueryBuilder regionQB = QueryBuilders.boolQuery()
.must(QueryBuilders.termsQuery("catalog_product_id", catalog_product_id_list))
.mustNot(QueryBuilders.termQuery("region_id", "MEA"));