如何进行这样的查询?
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))