zoukankan      html  css  js  c++  java
  • ElasticSearch——数据建模最佳实践

    如何建模

    mapping 设计非常重要,需要从两个维度进行考虑:

    • 功能:搜索、排序、聚合
    • 性能:存储的开锁、内存的开销、搜索的性能

    mapping 注意事项:

    • 加入新字段很容易(必要时需要 update_by_query)
    • 更新删除字段不允许(需要 reindex 重建数据)

    最佳实践

    1、不允许自动新增字段,将 dynamic 设置成 strict。默认为 true;

    2、不需要分词的字段,将 type 设置成 keyword。默认使用了多字段特性,text、keyword这2种类型都有;

    3、不需要检查的字段,将 index 设置成 false。默认为 true;

    4、不需要排序和聚合的字段,将 doc_values 设置成false。默认为 true;

    5、不需要检查、排序、聚合的字段,将 enable 设置成 false,仅做存储;

    6、type = text 的字段,默认不可以排序,如需要排序,将 fielddata 设置成 true,默认为 false;

    7、单个索引避免过多字段,默认最大值为1000;

    8、避免空值引起的聚合不准确的问题;

    9、避免使用正则查询;

    10、尽量不要设计成索引关联,可冗余多一些字段,以空间换时间,如实在无法避免,按以下方式处理:

  • 相关阅读:
    flume 安装过程记录
    hive 动态分区插入
    hive 数据导入
    scala 学习笔记
    hive 日志
    Linux下设置和查看环境变量
    数据结构(4):图解递归调用机制
    使用数据结构栈实现表达式计算器
    数据结构(3):java使用数组模拟堆栈
    使用Vue和Element-ui的cdn模式临摹一个后台框架
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/12010353.html
Copyright © 2011-2022 走看看