美文网首页
ES数据查询调优3

ES数据查询调优3

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

强制段合并(force merge)

每个shard是基于多个segment组成创建的,segment的个数的减少可以大幅的提高查询的速度,定时的进行手动索引段合并,可以提高查询速度。支持单索引和多索引批量操作。

单索引示例:
curl -XPOST 'http://ip:httpport/myindex-001/_forcemerge?only_expunge_deletes=false&max_num_segments=1&flush=true&pretty'
多索引安全模式下示例:
curl -XPOST 'http://ip:httpport/myindex-001,myindex-002/_forcemerge?only_expunge_deletes=false&max_num_segments=1&flush=true&pretty'
curl -XPOST 'http://ip:httpport/_all/_forcemerge?only_expunge_deletes=false&max_num_segments=1&flush=true&pretty'

注释:

  • max_num_segments:merge到多少个segments,1的意思是强行merge到1个segment;
  • only_expunge_deletes:只清理有deleted标记的segments,推荐值false;
  • flush:清理完执行一下flush,默认是true。

注意:

force merge操作是需要耗费大量的磁盘I/O,所以建议在业务比较空闲的时间进行后台强制段合并。

过滤查询(filter)

Elasticsearch的查询操作分为2种:查询(query)和过滤(filter),查询(query)默认会计算每个返回文档的得分,然后根据得分排序;而过滤(filter)只会筛选出符合的文档,并不计算得分,且可以缓存文档。

对于非全文检索的使用场景,如果不关心查询结果和查询条件的相关度,只是想查找目标数据,可以使用filter来提高查询效率。
query查询示例:

curl -XGET "http://ip:httpport/myindex-001/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "age": "56"
    }
  }
}'

filter查询示例:

curl -XGET "http://ip:httpport/myindex-001/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "bool": {
      "filter": {
         "match": {
          "age": "56"
        }
      }
    }
  }
}'

配置EsClient角色(协调节点)

EsClient角色可以用于发送查询请求到其他节点,收集和合并结果,以及响应发出查询的客户端。通过配置EsClient角色可以加快查询运算速度,提升缓存命中数。

避免使用wildcard模糊匹配查询

Elasticsearch默认支持通过*?正则表达式来做模糊匹配,数据量级别达到TB+甚至更高之后,模糊匹配查询通常会耗时比较长,甚至可能导致内存溢出,卡死乃至崩溃宕机的情况。所以数据量大的情况下,不要使用模糊匹配查询。
模糊匹配查询示例:

curl -XGET "http://ip:httpport/myindex-001/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "wildcard" : {
    "name" : "*优" 
    }
  }
}'

相关文章

  • ES数据查询调优3

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

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

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

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

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

  • Spark性能优化-数据倾斜调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 数据倾斜调优 1...

  • ES查询原理以及调优

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

  • Spark性能优化-开发调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 1. 开发调优 ...

  • Spark性能优化-资源调优

    Spark性能优化分为四个方面: 1、开发调优2、资源调优3、数据倾斜调优4、shuffle调优 资源调优 num...

  • ES数据查询调优4-路由

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

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

  • [13]ES常用查询命令

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

网友评论

      本文标题:ES数据查询调优3

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