美文网首页
[es]ES数据查询调优2

[es]ES数据查询调优2

作者: bigdata张凯翔 | 来源:发表于2021-04-10 13:51 被阅读0次
image.png

查询语句优化

查询语句优化的内容包括:查询范围,单次查询数量等。

  1. 根据实际业务需求去规划查询范围,查询越少的字段越快,过大的查询范围不仅会导致查询效率低,而且会使Elasticsearch集群资源耗费急剧增加,甚至可能造成集群崩溃。通过_source参数可以控制返回字段信息,尽量避免读取大字段;
  2. 单次查询数量限制是为了保证内存不会被查询内存大量占用,Elasticsearch默认的查询请求通常返回排序后的前10条记录,最多一次读取10000条记录。通过from和size参数控制读取记录范围,避免一次读取过多的记录。一次性查询大于10000条的数据,使用scroll查询,请参考[游标查询(scroll)]
    查询示例:
curl -XGET "http://ip:httpport/myindex-001/_search?pretty"  -H 'Content-Type: application/json' -d' 
{
  "from": 0,
  "size": 10,
  "_source": "age",
  "query": {
      "match": {
        "age": "56"
      }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ]
}'

游标查询

Elasticsearch为了避免深分页,不允许使用分页(from&size)查询10000条以后的数据,需要使用游标(scroll)查询。

安全模式下scroll查询示例:

curl -XGET"http://ip:httpport/myindex-001/_search?scroll=1m&pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "age": "36"
    }
  },
  "size":1000
}'

注意

使用scroll查询,应该在初始搜索请求中指定scroll参数,这个参数告诉Elasticsearch保持游标窗口期多长时间。例如:scroll=1m,表示1分钟。

优化scroll:

在一般场景下,scroll用来取得排序好的大量数据,但很多时候只需要返回数据,这时候可以对scroll进行优化。使用_doc去sort返回的结果不会有排序,此时执行效率最快。`

在设置开启scroll时,设置了一个scroll的存活时间,但是如果能够在使用完及时关闭,可以提早释放资源,降低Elasticsearch的负担。

curl -XDELETE "http://ip:httpport/_search/scroll=1m&pretty" -H 'Content-Type: application/json' -d'
{
  "scroll_id":"DnF1ZXJ5VGhlbkZldGNoMgAAAAAAAABPFlFHZzExcFdnUWJDU0d5bU=="
}'

相关文章

  • [es]ES数据查询调优2

    查询语句优化 查询语句优化的内容包括:查询范围,单次查询数量等。 根据实际业务需求去规划查询范围,查询越少的字段越...

  • [es]ES数据查询调优1

    mappings优化 1. 请确认mappings设置是否合理。 •对于只需要精确查询的字段,例如时间戳,应该设置...

  • ES数据查询调优3

    强制段合并(force merge) 每个shard是基于多个segment组成创建的,segment的个数的减少...

  • ES索引查询匹配,简单记录

    存入数据代码,以及es删除索引数据 从es里查询数据------单匹配查询

  • ES数据写入调优2

    1 修改事务日志translog参数(存在数据丢失风险) 默认设置下,translog 的持久化策略是每个请求都f...

  • ES导出导入索引及索引数据工具

    背景:1、使用postman查询出来的数据无法直接导入到es,导入es需要手动去整理查询的数据,麻烦耗时。2、自己...

  • [13]ES常用查询命令

    本文集主要是总结自己在项目中使用ES 的经验教训,包括各种实战和调优。 本文主要包含es 相关的各种查询命令,在进...

  • ES查询原理以及调优

    es为什么那么快 主要通过将确定无环状态转换器(Deterministic acyclic finite stat...

  • ElasticSearch:字段--精确查询||模糊查询

    ES数据类型 模糊查询: 精确查询:

  • 关于Elastic Search的5种分片查询

    分片查询方式 Es查询的时候,默认是随机从一些分片中查询数据,可以通过配置让es从某些分片中查询数据: _prim...

网友评论

      本文标题:[es]ES数据查询调优2

      本文链接:https://www.haomeiwen.com/subject/qrhgkltx.html