У меня проблема с предложением в клиенте 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 .