在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

Elasticsearch 6.0 将移除 Type

Elasticsearch | 作者 medcl | 发布于2017年05月04日 | | 阅读数:16840

尽管之前在很多地方都提到过,不过还是有必要单独开篇文章提醒一下大家!
Type 已经打算在6.0移除了,所以在设计 elasticsearch 的数据结构的时候,要注意到后面版本的变化。
之前在很多的文章和 PPT 都有介绍Elasticsearch 的几个核心概念,Index 对应 DB,Type 对应表,Document 对应记录,然后就真的按数据库的路子用,一个 index 里面 n 个 type 的情况大有存在,但是在 Lucene 里面其实有很多问题,所以现在es移除也是考虑了很久的。

新增参数:
index.mapping.single_type: true
 
UID 也会移除掉 _type 的值。

Type 移除大概分为两个阶段:
第一步,不支持新的索引创建多个 type,一个索引只有一个 type,名称也是固定的,不能修改。
第二步,移除。
 
相应的 PR 已经 merge 了。
https://github.com/elastic/ela ... 24317
 

[尊重社区原创,转载请保留或注明出处]
本文地址:http://elasticsearch.cn/article/158


6 个评论

忘了啥时候了, 记得看见过,很早之前就坚持一个index一个mapping, 这样方便管理和维护
早该那么做了,这个type不伦不类的。
终于下手了,这个type的伪概念着实坑很深,而且受到RDBMS的影响,许多index都是利用type做数据切割,当作分区表用,依靠删type清理旧数据,在2.x以后越来越不方便了。
我想问下,ES6.0 使用之后设置http的head只能用--header "Content-Type:application/json"才能请求,这样导致了6.0的head插件没发使用。这样的事情该怎么办呢?
head 插件不知道有更新没有,发起请求的地方加上这个 header 就行,另外,为什么不试试 Kibana 呢
6.0.1版本中,filebeat数据传输给es.有个默认的_type:doc,怎么把这个的值给修改掉?或者直接屏蔽掉?

要回复文章请先登录注册