关于java:elastic-stack-那些事3

4次阅读

共计 1388 个字符,预计需要花费 4 分钟才能阅读完成。

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 值大的笼罩小的
正文完
 0