【发布时间】:2021-07-12 18:10:45
【问题描述】:
是否有一个 API 可以根据您的查询搜索返回多少个结果/日志?或者像 NEST 的内置功能一样,它会告诉您有多少结果,例如 count?因为我有一个 NEST 查询搜索,它将执行以下操作:
var response = await _elasticClient.SearchAsync<EsSource>(s => s
.Size(3000) // must see about this
.Source(src => src.Includes(i => i
.Fields(f => f.timestamp,
fields => fields.messageTemplate,
fields => fields.message)))
.Index("customer-simulation-es-app-logs*")
.Query(q => +q
.DateRange(dr => dr
.Field("@timestamp")
.GreaterThanOrEquals("2021-06-07T17:13:54.414-05:00")
.LessThanOrEquals(DateTime.Now))));
但我意识到搜索 api 不能超过 10,000 个结果,因为当您分页超过 10,000 个结果时数组是空的。 search api
所以,如果有一个 api 或一个功能可以让您知道基于您的索引有多少结果,或者您是否像我上面所说的那样进行每月查询搜索;知道这个数字后,我可以创建一个 forloop 来对每个文档进行分页,比如我可以查看前 10,000 个点击,然后为接下来的 10,000 个点击进行下一次迭代,依此类推。希望这是有道理的,如果需要我会澄清。
【问题讨论】:
标签: c# elasticsearch nest elasticsearch-dsl