美文网首页
ES-优化应用篇

ES-优化应用篇

作者: 靈08_1024 | 来源:发表于2018-05-24 17:30 被阅读22次

    本文主要讲述了对ES的启动后优化。主要采用以es-head插件的方式。

    1、索引分片的优化:其中包括索引分片的数量控制、分片的副本数量控制

    在head插件中执行操作如图,其中的PUT处可以选择为其他HTTP方法:

    刷新结果:

    添加索引分片的结果.jpg

    新增索引时,如果不指定分片数量,则默认为5.(单节点强制副本时,所有副本会挂在空节点上,如上图)
    指定数量的插入:

    PUT http://localhost:9200/secisland/
    {
      "settings": {
        "number_of_shards": 2,
        "number_of_replicas": 3
      }
    }
    

    前面的PUT为HTTP方法,中间的是ES的地址,后面的secisland为新建的索引名。
    注意:如果只有一个节点的话,不建议使用分片。

    指定节点功能,指定数据节点、主节点等,node.master: truenode.data: false。数据节点关闭http等, http.enable: false

    搜索优化

    中文分词

    ES的默认分词器为标准分词器。其英文分词是基于空格和标点符号,可以说是well done。而中文分词是基于汉字的,比如搜索“大数据”会将“大”“数”“据”三个字分开搜索,而我们实际期望的是大数据作为一个整体,或者有“大数据”的内容靠前。这时候需要一个分词器——ik分词器

    测试分词链接:

    http://localhost:9200/hospital/_analyze?analyzer=standard&pretty&text=ES是大数据
    

    注意替换其中的分词器:细粒度的为ik_max_word;粗粒度的为ik_smart。

    下载中文分词器:
    在elasticsearch目录下,执行以下命令(注意es修改版本号),自动下载解压到plugin目录下:

    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.1/elasticsearch-analysis-ik-5.6.1.zip
    

    完成后重启即可。
    ps:也可以新建分词器。分词器即*.dic就是一堆短词用回车分割。

    索引中添加“index.stroe.type”:"niofs"(6.x默认取系统最优选择,可以不用设置)

    mapping 中添加:

    "dynamic":"strict",
    "_all":{
        "enabled":"false"
    }
    

    ps:6.0 废弃该字段。

    分片数的控制:建议每个分片的大小在10-20G。然后决定分片的数量。

    针对于某些表现出assign的节点(这是节点短暂掉线):"index.unassigned.node_left.delayed.timeout":"5m"

    禁止通配符删除:

    {
    "transient":
        {
            "action.destructive_requires_name":true
        }
    }
    

    节点间的检测:

    # 节点间的存活检测间隔
    discovery.zen.fd.ping_interval: 10s
    # 节点间检测超时时间
    discovery.zen.fd.ping_timeout: 120s
    # 检测超时重试次数
    discovery.zen.fd.ping_retries: 5
    

    bulk是一个异步的接口。

    相关文章

      网友评论

          本文标题:ES-优化应用篇

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