美文网首页
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

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