ElasticSearch Multi-Term Query With Java REST-клиент высокого уровня - PullRequest
0 голосов
/ 05 октября 2019

java-high-level-rest-client предоставляет метод для поиска наasticsearch, используя термин, показанный ниже его кода

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); 
sourceBuilder.query(QueryBuilders.termQuery("user", "kimchy")); 

Но я хочу сделать запросв нескольких полях, таких как: "user" = "kimchy" и / или "city" = "london".

Я вижу запрос multi-search и запрос множественного соответствия, но онине делай, что я хочу.

Спасибо за помощь !!

1 Ответ

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

попробуйте это:

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder
    .filter(QueryBuilders.termQuery("user", "kimchy"))
    .filter(QueryBuilders.termQuery("city", "london"));
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(boolQueryBuilder);

метод filter/must/should для BoolQueryBuilder, зависит от того, какой контекст вы хотите, если хотите "или", вы можете использовать should.

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