Как я могу добавить параметр запроса, используя Elasticsearch RestHighLevelClient? - PullRequest
0 голосов
/ 02 сентября 2018

Как добавить параметр запроса, используя Elasticsearch RestHighLevelClient?

Например:

/_search/q=style:SB

Я не вижу опции в классе SearchRequest.

1 Ответ

0 голосов
/ 02 сентября 2018

Я думаю, что вы не можете добавить параметры запроса в RestHighLevelClient , потому что его основная цель состоит в том, чтобы выставлять специфичные для API методы, которые принимают объекты запроса в качестве аргумента и возвращают объекты ответа.

Поскольку RestHighLevelClient построен поверх клиента REST низкого уровня, его можно использовать для добавления параметров запроса.

RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(
                new HttpHost("localhost", 9200, "http"),
                new HttpHost("localhost", 9201, "http")));

Используйте это для получения низкоуровневого клиента от RestHighLevelClient:

RestClient lowLevelClient = client.getLowLevelClient();

REST-клиент низкого уровня имеет метод executeRequest, который принимает параметр запроса:

lowLevelClient.performRequest(method, endpoint, params, entity, null);

описание метода:

public Response performRequest(String method, String endpoint, Map<String, String> params,
                                   HttpEntity entity, HttpAsyncResponseConsumerFactory httpAsyncResponseConsumerFactory,
                                   Header... headers) throws IOException {
        SyncResponseListener listener = new SyncResponseListener(maxRetryTimeoutMillis);
        performRequestAsync(method, endpoint, params, entity, httpAsyncResponseConsumerFactory, listener, headers);
        return listener.get();
    }

Javadoc: executeRequest

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