ES查询速度慢的问题?

现在有三台ES服务器,索引里大概有7000条数据,每条数据是内容放到txt中大概300kb以上,按某个查询条件查询的结果数量是4000多条数据。当size设置成9999的时候,需要查询30秒以上,这是为什么呢,有没有优化方案。

{
    "size":9999,
    "query":{
        "bool":{
            "adjust_pure_negative":true,
            "must":[
                {
                    "bool":{
                        "adjust_pure_negative":true,
                        "must":[
                            {
                                "nested":{
                                    "path":"hdr_inp_summary",
                                    "score_mode":"none",
                                    "query":{
                                        "bool":{
                                            "adjust_pure_negative":true,
                                            "must":[
                                                {
                                                    "terms":{
                                                        "boost":1.0,
                                                        "hdr_inp_summary.sex_name":[
                                                            "男"
                                                        ]
                                                    }
                                                }
                                            ],
                                            "boost":1.0
                                        }
                                    },
                                    "boost":1.0,
                                }
                            }
                        ],
                        "boost":1.0
                    }
                }
            ],
            "boost":1.0
        }
    },
    "from":0,
    "_source":{
        "excludes":[],
        "includes":[
            "hdr_inp_summary.pv_id"
        ]
    }
}
阅读 3.1k
2 个回答

你可以每次查询100或者500,分页查询,分批写入excel,应该会加速很多

size 类似于mysql limit offset,row, offset越大,都是先查询出来,再过滤掉前面的数据,你这种如果是单台,应该没有30秒,3台,Es本身数据存储是分片的,3台,多个分片,在多个分片中,取出数据,合并数据,过滤数据,当然慢了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏