解决ES只能查询10000条数据的问题

最近在从mysql同步到Elasticsearch,同步完成之后,在测试的时候发现会报错

"reason”:"Result window is too large,from + size must be less than or equal to: [10000] but was [1000000]

通过资料的查阅,发现默认值是10000,如果要查询大于10000条,我们就需要修改es的max_result_window默认值

https://www.elastic.co/guide/en/elasticsearch/reference/7.16/ml-update-datafeed.html

通过总结,这里归纳了2种修改的方式:

包含2种创建索引的时候修改默认值与后续的时候修改.

1.使用命令创建索引的时候

mappings = {
    "mappings": {
        "keyword1": {
            "properties": {
                "search_keyword": { 
                    "type": "text",
                    "index": "true"
                }
            }
        }
    },
    "settings": {
        "index": {
            "max_result_window": 1000000 
                }
            }
}

2.通过工具kibana进行修改(非创建的时候)

一般我们使用es的可视化工具来操作es

我们进入kibana的页面通过

http://ip:5601/app/kibana

在设置中,Management~Stack Management~Index Management

找到具体的索引,点击索引,选择Edit Settings,添加"index.max_result_window": "40000",保存配置即可

3.在安装es的服务器上使用PUT命令方式修改(非创建的时候)

需要将index换为真实的"index"

PUT index/_settings
{
  "index":{
    "max_result_window":1000000
  }
}

https://zhuanlan.zhihu.com/p/401770571

posted @ 2023-01-10 09:39  未月廿三  阅读(1032)  评论(0编辑  收藏  举报