• 【ElasticSearch】:Mapping相关


    • Mapping

      类似数据库中的表结构定义,主要作用如下:

    1.   定义Index下的字段名(Field Name)。
    2.   定义字段类型,例如数值型、字符串型、布尔型等。
    3.   定义倒排索引相关配置,比如是否索引、记录position等。

       

    • 查看一个Index的Mapping的API

      例如查看index为test_index的mapping,使用_mapping,查询结果中:

      doc是这个index的type,忽略,ES6.X将废弃。

      关注properties中的内容,每个字段及其字段类型(type) 。

       

    • 自定义一个Index的Mapping的API

       Mapping中的字段类型一旦设定后,禁止直接修改,因为底层基于Lucene实现的倒排索引生成后不允许修改。如果要修改,需要重建新的索引,然后做reindex操作。

      

    • dynamic参数

       index级别的设置。

      - true,默认值,允许自动新增字段

      - false,不允许自动新增字段,新增字段的document可正常写入ES,但无法对新增字段查询

      - strict,不允许自动新增字段,新增字段的document写入ES直接报错。

    • copy_to

       字段级别的设置。

      可以将多个已有字段都copy_to到 1个新字段,这样新生成的字段不占用存储,且方便查询。

      

    • index

       字段级别的设置。

      设置该字段是否可以被搜索,一般敏感信息字段设置为false,还可以节省倒排索引存储空间。

      

    • index_options

       字段级别的设置。

      设置倒排索引记录的内容。  

      

      

       

    • null_value

       字段级别的设置。

      该字段录入ES的字段值为null时,可设置默认值。  

       

    • dynamic_date_formats

       字段级别的设置。

      指定dynamic_date_formats可以让入库日期为date类型,否则有可能会是text类型。

      

    • 动态模板Dynamic Mapping

       目的:通用配置形成模板,简化mapping配置,减少配置工作量。  

      

      

      生产实践举例:

      1.所有字符串类型默认都设置为keyword,即默认不分词,节约资源。

      

      2.以message开头的字段设置为text,需要建立倒排索引分词检索。

       

      3.double类型设定为float,节省存储空间。

      

      4.支持设置多个动态模板,是从上至下执行的,只要匹配到就结束匹配。

      

    • 索引模板Index Template

      目的:类似于数据库的建表和定义表结构语句,固化索引创建操作,新建索引时自动应用预先设定的动态模板和mappings。

      设置index_patterns参数,支持模式匹配索引。

      支持配置多个索引模板,order大的优先级高。

      

      查看和删除索引模板

      

       

  • 相关阅读:
    jquery效果,多个div,点击任何一个div,那么这个div会切换文字,变换背景颜色,再次点击其他的div ,这个div会发生刚才的变化,之前点击的div的颜色会变回来
    用js动态的改变img标签里面的src属性实现图片的循环切换
    清除浮动
    清除浮动clearfix
    转移符 个人工作中使用记录一下
    12.Django数据库操作(执行原生SQL)
    11.Django数据库操作(查)
    10.Django数据库操作(增删改)
    9.Django里的数据同步migrations命令
    8.Django模型类例子
  • 原文地址:https://www.cnblogs.com/wwcom123/p/10420521.html
Copyright © 2020-2023  润新知