[es]ES数据查询调优1

举报
bigdata张凯翔 发表于 2021/04/24 00:06:44 2021/04/24
【摘要】 image.png mappings优化 1. 请确认mappings设置是否合理。 •对于只需要精确查询的字段,例如时间戳,应该设置为keyword。 •对需要进行全文检索的字段设置合理的分词器,不同的分词器查询效率相差较大。 2.合理的mapping设置建议 合理地向Elasticsearch中进行数据索引时,也要注意以下几点: 1 Elasticsearch...
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”,节省更多的磁盘空间。

文章来源: www.jianshu.com,作者:百忍成金的虚竹,版权归原作者所有,如需转载,请联系作者。

原文链接:www.jianshu.com/p/e20772ee5c04

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。