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

[es]ES数据查询调优1

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

    mappings优化

    1. 请确认mappings设置是否合理。

    •对于只需要精确查询的字段,例如时间戳,应该设置为keyword。
    •对需要进行全文检索的字段设置合理的分词器,不同的分词器查询效率相差较大。

    2.合理的mapping设置建议

    合理地向Elasticsearch中进行数据索引时,也要注意以下几点:

    • 1 Elasticsearch可以对数据做动态mapping,但请不要这么做,尽量在创建index时便赋予index固定的mapping配置。当大量数据写入的同时伴随着新的字段的增加,会造成大量的put_mapping操作,从而造成EsMaster阻塞,影响整个Elasticsearch集群的运行。不建议使用动态mapping,如果需要使用动态mapping,建议尽量使用较为精准的匹配规则,杜绝*全匹配的通配符操作。当Elasticsearch的实例总数在500以上时,禁止使用动态mapping。
    • 2 如果数据量巨大,可以分的字段个数太多,如超过1000个字段,最好给字段赋予不同的级别索引到不同的index中。例如,常用的查询字段可以写入到一个index中,字段长度较长且不常用的索引到另一个index中。
    • 3.合理的设计Mapping,根据实际的业务数据去设置优化Mapping,根据具体的字段和需求去选择对应的类型设置,可参考如下几点:
      1.字符串类型默认分成:text和keyword两种类型。需要分词:text,否则keyword。
      2.枚举类型,基于性能keyword,即便是整形。
      3.数值类型,尽量选择贴近大小的类型。
      4.日期类型,如果需要基于时间轴做分析,必须date类型,如果仅需秒级返回,建议使用keyword。
      5.其他类型,布尔、日期、地理位置,使用对应的类型即可。
      6.如果某个字段不需要被检索,将“index”参数设置为“false”。
      7.如果字段完全不需要检索,排序,聚合分析,将“enable”参数设置为“false”。
      8.“_all”字段,默认将写入的字段拼接成一个大的字符串,并对该字段进行分词,用于支持整个doc的全文检索,“_all”字段在查询时占用更多的CPU,同时占用更多的磁盘存储空间,默认为“false”,不建议开启该字段。
      9.norms字段,norm是索引评分因子,如果不用按评分对文档进行排序,设置为“false”,默认是“true”。
      10._source字段,默认是开启的,如果不需要update、reindex和高亮操作,将“_source”设置为“false”,节省更多的磁盘空间。

    相关文章

      网友评论

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

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