Я недавно прочитал об Elasticsearch, и я использую Jest для взаимодействия с Amazon Elasticsearch Service. Я смог использовать документы и индексы Jest в ES.ElasticSearch-запрос с использованием JestClient кажется очень медленным
Однако, когда я пытаюсь выполнить запрос (используя логический запрос), я вижу чрезвычайно высокие задержки. Я попытался выполнить POST-запрос, используя POSTMAN, и я вижу, что задержки намного ниже.
Вот пример:
Jest запрос: Учитывая ключ, значение: Возвращает список объектов.
Клиент JestClient;
String query = "{\n" +
" \"query\" : \n" +
" {\"bool\": \n" +
" { \"must\": \n" +
" [\n" +
" {\"match\": \n" +
" {\"" + key +"\" : \"" + value + "\"}\n" +
" }\n" +
" ]\n" +
" }\n" +
" }\n" +
"}";
long startTime, endTime;
Search search = new Search.Builder(query)
// multiple index or types can be added.
.addIndex(indexName)
.addType(typeName)
.build();
endTime = System.currentTimeMillis();
System.out.println("SearchBuilder: " + (endTime - startTime));
startTime = endTime;
JestResult result = client.execute(search);
endTime = System.currentTimeMillis();
System.out.println("ClientExecute: " + (endTime - startTime));
return result.getSourceAsObjectList(<Object>.class);
Выход: SearchBuilder: 12 ClientExecute: 1193
С другой стороны, используя ПОЧТАЛЬОН: меня есть запрос POST с телом:
{
"query" : {"bool": { "must": [{"match": {key : value}}]}}
}
Это выполняется на: es.ap-southeast-1.es.amazonaws.com/index/_search Выход:
" взял ": 1, "timed_out": ложь, "_shards": { "всего": 10, "успешно": 10, "Failed": 0 },
Я попытался с помощью Searchsourcebuilder, как Что ж. Но безрезультатно. Я использую правильный API?
Спасибо! Tejas
У меня такая же проблема. Запросы от #JEST за 11 секунд, когда CURL с той же машины занимает 109 мс. Вероятно, выйдя из JEST –
, где находится ваша машина ec2? Если он находится в ближайшем кластере, вы увидите проблемы. Лучше всего запустить код для проверки времени в одном кластере, а не на локальном рабочем столе. –
это в VPC в aws. –