gpt4 book ai didi

java - elasticsearch中执行From/Size时的范围

转载 作者:行者123 更新时间:2023-12-01 09:31:15 24 4
gpt4 key购买 nike

当我阅读elasticsearch中的From/Size理论时。

https://www.elastic.co/guide/en/elasticsearch/reference/1.7/search-request-from-size.html

问题是如何确定搜索范围。例如,如果我生成 1.000 条记录,那么我将其查询为以下片段:

{
"from" : 100, "size" : 10,
"query" : {
"term" : { "user" : "kimchy" }
}
}

是否会在记录 100 到 1.000 的范围内搜索,然后返回 10 个结果?或者它会自动生成合适的范围并返回10个结果?谁能帮我解决这个问题?致以诚挚的问候。

最佳答案

因此,elasticsearch 将我们的索引分成称为“分片”的较小部分,因此,如果您的索引包含 5 个分片和 1000 个文档,则每个分片将分配 200 个文档。现在,当您执行搜索查询时,elasticsearch 将搜索所有分片并创建一个结果列表,按每个分片中分数的降序排序。

现在,如果我们想要前 10 个结果(来自:0,大小:10),elasticsearch 将从每个分片中获取前 10 个结果,即总共 50 个结果(假设每个分片有超过 10 个命中),然后排序再次搜索并返回其中的前 10 个结果,并丢弃其余 40 个结果。

现在,如果您想要 100 到 110 之间的结果(来自:100,大小:10),elasticsearch 将请求每个分片的前 110 个结果,即。共有 550 个结果。现在将对这 550 个结果再次进行排序,以获得前 110 个结果,其余 440 个结果将被丢弃。

现在,在这 110 个结果中,编号 1-99 将被丢弃,结果编号 100-110 将作为搜索查询的结果返回。

关于java - elasticsearch中执行From/Size时的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381915/

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