
无需加好友免费技术支持
为了方便演试和转换 ES 详细地址,在 ~/.bashrc 添加下列自变量和脚本制作:
ES=localhost:9200 escurl () { curl -H "Content-Type: application/json" "$@"; } 复制代码
Elasticsearch 它具有极强的动态性与协调能力。比如,当将文本文档添加到不存在的索引里时,索引会自动建立,比如:
假如 my_article 假如索引不会有,它会自动建立 my_article 算法设计如下所示:
不难发现 ES 下列字段种类全自动映射
title 字段映射成 text 种类createdAt 字段映射成 date 种类wordCount 字段映射成 long 种类extra.score 字段映射成 float 种类extra.deleted 字段映射成 boolean 种类猜想十分精确,除此之外,还能够动态猜想和升级后面添加新的字段 mapping。
若再次添加新文档,则多多好多个字段:
自动升级映射:
换句话说,ES 基本数据类型将依据字段值开展猜想,并动态添加到种类映射中。
尽管动态映射是灵活多变的,但有时候算法设计是很明确的,由于并非所有字段都要储存,索引能够配备在这时候 dynamic 选择项,有三个可选值:
true:动态添加新字段(初始值)false:忽视新字段strict:假如新字段被抛出去,上边的索引代表着:如果遇见新字段,它就会自动被忽视,内部结构目标 extra 碰到新字段时,会动态建立新字段。一定要注意,假如索引早已存有,往往会出差错,务必删掉并复建。这时,假如添加下列数据信息:
likes 和 author 字段会被忽视 extra.remark 添加了字段。
动态映射的全自动推论功能齐全,但有时候不完整达到项目需求。比如,希望一切 string 全部种类都映射成 keyword 而非 text,全部 number 都映射成 double 而非 long,这时必须动态模板(dynamic_templates),新形成字段的映射种类能够良好控制。比如:
dynamic_templates 换句话说,能够添加好几个模板,ES 第一个配对模板将按序检验。
以上做法就是为现阶段索引特定动态模板,但也能相反建立动态模板,使模板特定相匹配的索引。
这时再建立 my-xxx 当索引时,动态字段映射将根据 my-template 映射内部结构规则。因为动态模板很实用,下边展示了添加、删掉和调整的词法:
返回结果是目标,key 是模板名,value 是模板界定。
存有则回到:
不然回到: