Elasticsearch NEST 搜索查询太慢
Elasticsearch NEST search query too slow
我有 700 万份文件作为我的索引。使用 NEST 客户端,我正在使用此代码搜索“*”查询。
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(
node,
defaultIndex: "evaluation"
);
var client = new ElasticClient(settings);
var result = client.Search<FtsResult>(s => s
.From(0)
.Fields(new[] { "id" })
.Indices(indexName)
.Size(Int32.MaxValue)
.Query(q => q
.QueryString(qs => qs.OnFields(new[] { "agentText", "customerText" }).Query("*"))
)
结果运行时间为 59.6 秒。
在 Kibana 中,相同的查询结果运行时间约为 4 秒。为什么 Nest 搜索查询根据 Kibana 太慢?
因为你这样做:
.Size(Int32.MaxValue)
我很惊讶您的节点不会 运行 内存不足 Size
。使用较小的尺寸,或者如果您确实需要所有文档,请使用 scan&scroll.
我有 700 万份文件作为我的索引。使用 NEST 客户端,我正在使用此代码搜索“*”查询。
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(
node,
defaultIndex: "evaluation"
);
var client = new ElasticClient(settings);
var result = client.Search<FtsResult>(s => s
.From(0)
.Fields(new[] { "id" })
.Indices(indexName)
.Size(Int32.MaxValue)
.Query(q => q
.QueryString(qs => qs.OnFields(new[] { "agentText", "customerText" }).Query("*"))
)
结果运行时间为 59.6 秒。 在 Kibana 中,相同的查询结果运行时间约为 4 秒。为什么 Nest 搜索查询根据 Kibana 太慢?
因为你这样做:
.Size(Int32.MaxValue)
我很惊讶您的节点不会 运行 内存不足 Size
。使用较小的尺寸,或者如果您确实需要所有文档,请使用 scan&scroll.