我尝试根据文档创建索引然后使用:

PUT indexname/_settings
{
      "index.max_result_window": 20000
}

获得设置后,我看到设置已设置,但是每当对其进行查询时,我都会不断得到10,000个结果。我尝试使用设置集创建索引,但这也没有用。

在进行搜索查询时,我还尝试添加大小参数11,000,但仍然没有返回。

我要做什么才能使结果返回大于10,000?

我必须对节点应用某些设置,还是对索引应用某些其他设置才能使其正常工作?

我正在使用最新版本7.3.1。

最佳答案

默认情况下,您可以使用scroll API检索10000条以上的记录,默认情况下,返回的文档数上限为10000。

Scroll API的基本作用是将文件分块获取,其大小可以由我们自定义。我们可以通过使用大小和时间值来控制返回的文档集的大小。实际的调用采用以下形式:

第一次 call

在第一次获取文档的调用中,您可以指定大小(例如5000 docs),并使用滚动参数指定以分钟为单位的时间,在此之前,搜索上下文将超时。

 POST /index/type/_search?scroll=1m
{
    "size": 5000,
    "query": {
        "match" : {
            "title" : "Something"
        }
    }
}

第二个 call (及以后的所有其他 call )

在第一个调用的响应中,我们获得一个_scroll_id,可用于检索下一个文档块。
    POST /_search/scroll
{
    "scroll" : "1m",
    "scroll_id" : "XGSKJKSVNNNNNDDDD1233BBNMBBNNN==="
}

另外,检查此answer

关于elasticsearch - 如何使elasticsearch一次返回超过10000个结果? ES似乎不遵守index.max_result_window设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57632892/

10-11 22:14
查看更多