Как присоединиться, предложить с postQuery или setQuery в Java-клиентasticsearch - PullRequest
0 голосов
/ 21 марта 2019

У меня проблема с предложением в клиенте Java Elastisearch v6.6.0 У меня есть такие документы:

{
 "_index": "index_a",
 "_type": "type1",
 "_id": "id1",
 "_score": 0.0005112039,
 "_source": {
    "city": "city name",
    "someFeature": false,
    "suggestions": [
         {
          "input": "city name",
          "weight": 492
         },
         {
          "input": "city",
          "weight": 498
         },
         {
          "input": "name",
          "weight": 498
         }
     ]
  }
}

, и я создаю запрос:

        SearchResponse suggest(String index, String type,
    CompletionSuggestionBuilder completionSuggestionBuilder,
    QueryBuilder queryBuilder) {
            return elasticClient
                    .prepareSearch(index)
                    .setTypes(type)
                    .suggest(new SuggestBuilder().addSuggestion(type,
completionSuggestionBuilder))
                    .setPostFilter(queryBuilder).get();
        }

завершениеSuggestionBuilder основывается на Поле предложения и поле queryBuilder является boolQuery:

    QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("someFeature", false));

, но условие someFeature = false игнорируется.Ответ содержит элементы с someFeature = true .Я попытался использовать setQuery вместо setPostFilter, но он тоже не работает.Можно объединиться предложить с другим запросом?Я не могу найти какие-либо опции в CompletionSuggestionBuilder для фильтрации документов с ложным значением в поле someFeature .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...