Elasticsearch: как вызывать mustNot той же длины, что и массив Java High Level REST Client - PullRequest
0 голосов
/ 15 октября 2019

Как мне сделать такой запрос?

REST API Query

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

Kotlin code

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, ...))

1 Ответ

0 голосов
/ 15 октября 2019

Я бы сделал это, используя вместо этого запрос terms, чтобы вы могли просто передать список в аргументе:

val q = QueryBuilders.boolQuery()
    .mustNot(QueryBuilders.termsQuery("id", foreignIdsForMustNot))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...