Как найти документы с определенным полем, содержащим строку, используя RestHighLevelClient - PullRequest
0 голосов
/ 18 ноября 2018

Итак, я могу сделать просто через URL:

<elastic_host>/indexname/_search?pretty=true&q=text:*str*

Я хочу сделать то же самое с RestHighLevelClient, но это не сработает:

 SearchRequest searchRequest = new SearchRequest(indexName);
    searchRequest.types(INDEX_TYPE);
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    QueryBuilder queryBuilder = QueryBuilders.matchQuery(IMAGE_TEXT_FIELD_NAME, "*str*" );
    searchSourceBuilder.query(queryBuilder);
    searchRequest.source(searchSourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);

1 Ответ

0 голосов
/ 18 ноября 2018

Эквивалентный запрос - это не запрос на совпадение, а запрос query_string, поэтому вы можете заменить следующую строку

QueryBuilder queryBuilder = QueryBuilders.matchQuery(IMAGE_TEXT_FIELD_NAME, "*str*" );

этим

QueryBuilder queryBuilder = QueryBuilders.queryStringQuery("*str*").field(IMAGE_TEXT_FIELD_NAME);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...