gpt4 book ai didi

elasticsearch - 使用JestClient进行ElasticSearch查询似乎很慢

转载 作者:行者123 更新时间:2023-12-03 01:55:04 25 4
gpt4 key购买 nike

我最近阅读了有关Elasticsearch的信息,并且正在使用Jest与Amazon Elasticsearch Service进行交互。我已经能够利用Jest的文档并在ES中建立索引。

但是,当我尝试查询(使用 bool(boolean) 查询)时,我看到了极高的延迟。我尝试使用POSTMAN执行POST请求,但发现延迟要低得多。

这是示例:

开 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
客户端执行:1193

另一方面使用POSTMAN:
我的 body 有POST请求:
{
"query" : {"bool": { "must": [{"match": {key : value}}]}}
}

该操作在es.ap-southeast-1.es.amazonaws.com/index/_search上执行
输出:

“接”:1,
“timed_out”:否,
“_shards”:{
“总计”:10,
“成功”:10,
“失败”:0
},

我也尝试使用Searchsourcebuilder。但无济于事。我在使用正确的API吗?

谢谢!
特哈斯

最佳答案

这条线

"took": 1, "timed_out": false, "_shards": { "total": 10, "successful": 10, "failed": 0 }

告诉您实际的ES引擎运行查询所花的时间,但不包括通过互联网发送查询或将结果返回给您的任何延迟。在您的JestClient示例中,您确实会包含此时间,因此,完全有可能在您的JestClient示例以相同的速度执行时,时间差仅与传输和接收数据所花费的时间有关。

我对Jest不太熟悉,但是我在C#中使用过Nest(我认为几乎相同),并且在结果中,您应该能够在返回对象中获得相同的“took”,“timed_out”统计信息。

关于elasticsearch - 使用JestClient进行ElasticSearch查询似乎很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37404319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com