当前位置:   article > 正文

ElasticSearch|ES 查询性能调优记录_elasticsearch query filte 查询 优化

elasticsearch query filte 查询 优化

已更新整合到新文章:https://dataartist.blog.csdn.net/article/details/130139631


优化方法 1:将 ES 的 query 查询语句改为 filter 过滤语句

样例:

{
    "query": {
        "term": {
            "field_name": "field_value"
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
{
    "query": {
        "bool": {
            "filter": {
                "term": {
                    "field_name": "field_value"
                }
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

查询性能变化:

测试用例优化前优化后优化比例
测试用例 145.2036.9418.27%
测试用例 2549.69460.6516.20%
优化内容 2:在无超时风险的情况下,增加每次 scroll 获取的记录数

在查询测试用例 2 时,将每次 scroll 获取的记录数从 1000 增加到 10000。

查询性能变化:

测试用例优化前优化后优化比例
测试用例 2460.65407.7411.48%
优化内容 3:在 ES 查询中增加按 _doc 排序

在 ElasticSearch 的官方文档中,说明了 _doc 表示按索引顺序排序,也是最高效的排序方法。如果不关心返回文档的顺序的话,那么就应按 _doc 进行排序以提高查询性能。这在 scroll 时格外有效。(https://www.elastic.co/guide/en/elasticsearch/reference/8.6/sort-search-results.html

样例:

{
    "query": {
        "bool": {
            "filter": {
                "term": {
                    "field_name": "field_value"
                }
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
{
    "query": {
        "bool": {
            "filter": {
                "term": {
                    "field_name": "field_value"
                }
            }
        }
    },
    "sort": ["_doc"]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

查询性能变化:

测试用例优化前优化后优化比例
测试用例 136.9439.46-6.82%
测试用例 2407.95229.9243.64%
优化内容 4:在查询宽表档案时不再返回两个无效字段

查询性能变化:

测试用例优化前优化后优化比例
测试用例 2229.92223.262.90%

备注

测试用例特征描述如下:

测试用例编号docs.countstore.size
1(scroll 查询,doc 字段较少,返回所有字段)2096690166.4 mb
2(scroll 查询,doc 字段较多,筛选其中部分字段返回)20875347.6 gb

参考资料:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/862723
推荐阅读
相关标签
  

闽ICP备14008679号