Mapping

mapping 相似数据库中的表构造定义,作用如下:

  1. 定义index下字段名
  2. 定义字段类型,例如数值型,字符串型等
  3. 定义倒排索引的配置,例如是否为索引,记录position等

自定义mapping

mapping字段类型一旦设计后,禁止间接批改,因为其生成的倒排索引生成后不容许批改,然而能够建设新的索引,做reindex。然而容许做新增字段,通过dynamic属性设置字段字段规定

  1. true 默认 容许新增字段
  2. false 不容许主动新增字段,然而文档可失常写入,但无奈对字段进行查问等操作
  3. strict 文档不可写入,否则报错

copy_to

将该字段的值复制到指标字段,实现相似_all的作用
不会呈现在_source中,只用来搜寻

index

设置index为true时,记录这个字段为索引,false不记录

index_options 用于管制倒排索引的记录内容,四种配置

  1. docs 只记录docid
  2. freqs 记录 docid 和 term frequencies
  3. positions 记录 doc id 、term frequencies 、 term position
  4. offsets 记录 doc id、term frequencies、term position、character offsets
  5. text 类型默认配置为positions 其余默认docs
  6. 记录内容越多 占用空间越大

数据类型

外围数据类型

  1. 字符串
  2. 数值型
  3. 日期型
  4. 布尔
  5. 二进制
  6. 范畴

简单数据类型

  1. 数组
  2. 对象
  3. 嵌套类型
  4. 地理位置

专用类型

  1. ip
  2. 主动补全 completion
  3. 记录分词数 token_count
  4. 记录字符串hash
  5. percolator
  6. join

多字段个性

容许对同一个字段采纳不同的配置,例如分词,常见例子如对人名实现拼音搜寻,只须要再任命中新增子一个子字段pinyin即可

dynamic-mapping

没有指定字段类型时,字段会依据json的类型自动识别。

dynamic date

es可自动识别日期

  1. 默认为["strict_date_optional_time","yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"]
  2. strict_date_option_time 是 ISO datatime 格局,残缺格局相似如下
    YYYY-MM-DDThh:mm:ssTZD(eg 1997-07-16T19:20:30+01:00)
  3. dynamic_date_formats能够自定义日期类型
  4. date_detaction 能够敞开日期自动识别的机制

字符串是数字时,默认不会自动识别为整形,numeric_detection能够开启字符串中数字的自动识别

dynamic template

容许es自动识别的数据类型,字段名等动静设定字段类型,能够实现如下成果

  1. 所有字符串类型都设定为keyword类型 默认不分词
  2. 以message结尾的字段都设定为text类型 分词
  3. 所有以long结尾的字段都设定为long类型
  4. 所有主动匹配为double类型的都设定为float类型 节俭空间

自定义mapping的操作步骤如下

  1. 写入一条文档到es长期索引中,获取es主动生成的mapping
  2. 批改步骤1失去的mapping,自定义配置
  3. 应用步骤2的mapping创立理论所需索引

索引模板

用于再新增索引时主动利用事后设定的配置,简化索引创立的操作步骤

  1. 能够设定索引的配置和mapping
  2. 能够有多个模板,依据order设置 order值大的笼罩小的