Elasticsearch:如何调用 must与数组 Java 高级 REST 客户端的长度不同



如何进行这样的查询?

REST API 查询

{ "query": { "must_not": [ {"match": {"foreignId": 1}}, {"match": {"foreignId": 2}}, ...  ] } 

科特林代码

fun searchWithExclude(foreignIdsForMustNot: List<Int>) {
val q = QueryBuilders.boolQuery()
.mustNot(QueryBuilders.matchQuery("id", foreignIdsForMustNot[0]))
.mustNot(QueryBuilders.matchQuery("id", foreignIdsForMustNot[1]))
...
}
searchWithExclude(listOf(1, 2, ...))

我会使用terms查询来做到这一点,这样您就可以简单地在参数中传递列表:

val q = QueryBuilders.boolQuery()
.mustNot(QueryBuilders.termsQuery("id", foreignIdsForMustNot))

最新更新