移除的特性

Rivers已经移除

Elasticsearch不再支持rivers,因为和ES2.0的一些特性相冲突,比如:同步动态mapping更新。
具体原因:https://www.elastic.co/blog/deprecating-rivers

Facets已经移除

Facets在ES1.0时就已经被标记为deprecated,可以用更加灵活强大的 aggregation框架,这也意味着Kibana3不能在ES2.0下运行。

MVEL已经移除

MVEL脚本已经移除,默认的脚本语言现在是Groovy。

Delete-by-query现在变为插件

在ES1.X中delete-by-query非常快但是不稳定,他可能会导致主分片的文档和备份上的文档不同。而且有可能导致系统OOM最终导致宕机。
现在这个特性可以被scroll API和bulk API所代替,这样做可能会慢一点,但是更加安全。
目前有一些运行时间长的delete-by-query任务不能被取消,所以delete-by-query还是可以作为插件使用,安装插件方法
./bin/plugin install delete-by-query

Multicast Discovery(组播)现在变为插件

现在默认的发现机制是unicast(单播),作为默认设置ES会检查前5个端口。如果你还想继续使用组播功能,可以安装:

./bin/plugin install discovery-multicast

_shutdown API

_shutdown api已经被移除并且没有其他替代的api,节点的管理可以通过操作系统和 start/stop脚本来实现。

murmur3现在变为插件

可以手动安装:
./bin/plugin install mapper-murmur3

_size现在变为插件

以前_size作为表示索引文档时文档的json串的大小,现在已经被移除。可以通过安装插件实现:

./bin/plugin install mapper-size

Bulk UDP

UDP API已经移除,现在只能使用标准的 bulk API。

Network changes(网络配置变化)

绑定localhost

ES2.X默认只绑定localhost,当然也会尝试绑定127.0.0.1(IPv4)和[::1](IPv6)。这个改变将阻止ES自动尝试连接你网络内的其他ES节点,除非你明确指定了ES节点地址。在生产环境你必须指定network.host参数。可以在elasticsearch.yml中配置或者在命令行启动参数中指定:
bin/elasticsearch --network.host 192.168.1.5
bin/elasticsearch --network.host _non_loopback_

该参数的完整设置可参见:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html

Multicast removed(组播移除)

组播已经被移除(尽管可以通过插件实现)。当ES绑定localhost时会使用单播连接在transport.tcp.port指定的端口的前5个,默认配置是9300-9400。
这在开发阶段可以让开发人员做到0配置自动组成集群,但在生产环境需要提供一份单播的hosts列表,比如:
discovery.zen.ping.unicast.hosts: [ 192.168.1.2,  192.168.1.3 ]

你不需要列出集群中所有的节点作为单播列表,但是你必须至少指定一定数量的具有被选举为master资格的节点地址。比如在一个有3个专用的master节点的大集群中,建议列出全部的这3个几点地址。

Mapping changes(映射变化)

冲突字段映射

在同一个索引的不同类型的同名字段中,是不允许出现不同映射(mapping)的。在以下几种参数中会抛出异常:copy_to、dynamic、enabled、ignore_above、include_in_al和properties。如下:
PUT my_index
{"mappings": {"type_one": {"properties": {"name": { "type": "string"}}},"type_two": {"properties": {"name": { "type":     "string","analyzer": "english"}}}}
}
  1. 这两个name字段在mapping中是有冲突的,将会阻止ES启动
  2. 这种情况下需要删除索引重新定义mapping并重新索引。
ignore_conflicts也已经被移除,字段映射冲突将不会被忽略。

字段将不能再通过短名引用

字段不能在使用短名引用,必须指定全路径,比如:
PUT my_index
{"mappings": {"my_type": {"properties": {"title":     { "type": "string" },    <--- 1"name": {"properties": {"title": { "type": "string" },    <--- 2"first": { "type": "string" },"last":  { "type": "string" }}}}}}
}
  1. 字段只能通过title引用
  2. 字段只能通过name.title引用

Type name prefix(类型名)前缀已移除

在ES1.X中,在url中不指定type可以在搜索字段名上指定前缀,如:

GET my_index/_search
{"query": {"match": {"my_type.some_field": "quick brown fox"}}
}

在ES2.X中,必须在url中指定type,搜索字段名上则不再加前缀:

GET my_index/my_type/_search
{"query": {"match": {"some_field": "quick brown fox" }}
}

字段名不再支持包含点“.”

在ES1.X中:

PUT my_index
{"mappings": {"my_type": {"properties": {"foo.bar": { "type": "string"},"foo": {"properties": {"bar": { "type": "string"}}}}}}
}

foo.bar和bar是两个字段,在ES2.X foo.bar这种定义不再支持。

Type相关改变

  1. type名称不能以点“.”开头
  2. type名称不能超过255个字符
  3. type不能再被删除

Type元数据字段

元数据字段的配置项已经被移除,原因是为了他们更加稳定:

  • _id字段将不能再被改变,如果需要按该字段排序需要使用_uid字段
  • _type字段将不能再被改变
  • _index字段将不能再被改变
  • _routing配置必须明确指定需要开启
  • _field_names配置仅限于disable字段
  • _size
  • _timestamp默认配置开启,使用默认格式
  • _boost已经移除
  • _analyzer已经移除
重要的一点是:元数据字段将不再能作为doc body的一部分指定。比如在ES1.X中:

PUT my_index
{"mappings": {"my_type": {"_routing": {"path": "group" },"properties": {"group": { "type": "string"}}}}
}PUT my_index/my_type/1
{"group": "foo"
}

在ES2.X中则改为:

PUT my_index
{"mappings": {"my_type": {"_routing": {"required": true },"properties": {"group": {"type": "string"}}}}
}PUT my_index/my_type/1?routing=bar
{"group": "foo"
}

_timestamp和_ttl标记为deprecated

Analyzer映射

以前index_analyzer和search_analyzer可以分开设置,它们是平级的。现在只能设置analyzer和search_analyzer它们的关系是analyzer > search_analyzer,当在查询中不指定search_analyzer时默认采用analyzer指定的值。

Boolean fields

以前bool字段采用string类型 F = false ,T = true,现在采用数字类型0 = false,1 = true

转载于:https://www.cnblogs.com/chennanlcy/p/6591787.html

Elasticsearch2.x Breaking changes相关推荐

  1. Elasticsearch2.2.0配置文件说明

    为什么80%的码农都做不了架构师?>>>    官方配置文档 https://www.elastic.co/guide/en/elasticsearch/reference/curr ...

  2. ElasticSearch2.4.6的安装部署以及集群部署、ElasticSearch-head等插件的安装

    2019独角兽企业重金招聘Python工程师标准>>> 一.安装 在安装之前,请先设置jdk环境,到oracle官网下载相应的jdk版本,我这边使用的是jdk1.7的版本 vim / ...

  3. SpriteBuilder实际操作中如何确定合适Breaking force的值

    确定Breaking force合适的值同样很单调,但是按照下面的方法也并不是完全不可能: 输入一个随意的值,比如说100 检查实际场景中关节是否能承受住物理物体,在完美的情况下物理物体将保持静止. ...

  4. ElasticSearch2.2.0安装

    一.ElasticSearch2.2.0安装 1.下载ElasticSearch2.2.0安装包  https://download.elastic.co/elasticsearch/elastics ...

  5. elasticsearch2.3安装以及集群部署

    摘要: elasticsearch安装以及集群部署 一.下载 1.1安装elasticsearch-2.3.3要求是安装官方新版的Java,必须是JDK 1.7以上,1.7以下执行的时候会报以下错误. ...

  6. ElasticSearch2.3.1环境搭建哪些不为人知的坑

    首先说明一点,大家最好不要用什么尝鲜版,用比稳定版就好了,要不麻烦不断,另外出了问题,最好去官网,或者google搜索,因为这样靠谱些,要不现在好多都是低版本的,1.4的什么的,结果按照安装,多少情况 ...

  7. Breaking the Ledger Security Model

    In this post, I'm going to discuss a vulnerability I discovered in Ledgerhardware wallets. The vulne ...

  8. Linux下安装Elasticsearch2.x

    elasticsearch  Linux安装: 1 安装jdk 配置环境变量 参考:http://blog.csdn.net/sxdtzhaoxinguo/article/details/437316 ...

  9. ElasticSearch2.3.5源码研究(一)

    ElasticSearch2.3.5源码包结构截图: 先看下node 这个类,sonar是调用node start 方法启动的 /** Licensed to Elasticsearch under ...

最新文章

  1. 【飘移】仅需7个动作完成“斯堪的纳维亚钟摆”飘移过弯教程
  2. Golang访问Redis初体验
  3. 4行代码解决:L1-057 PTA使我精神焕发 (5分)
  4. [渝粤教育] 武汉理工大学 认识武理 参考 资料
  5. DataSet 读取Oracle 数据
  6. 从 重复叠加字符串匹配 看Java String源码中的contains方法
  7. SQL Server商业智能–在已建立的数据仓库中扩展事实表
  8. 博文视点程序员读书节,大咖带你共读十日精彩
  9. Oracle数据库的【安装包选择、下载】、安装与卸载
  10. matlab 矩阵转置
  11. doe五步法_DOE实验设计的步骤与应用
  12. Maxscript开发笔记
  13. o2o模式主要利用在哪些领域 企业怎么发展o2o模式?
  14. 万物皆可编码:聊聊1~10这十个数字
  15. 蓝桥杯 阅兵方阵(预处理+暴力)
  16. 大数据为我们的生活带来了什么?
  17. dell服务器硬件检测cable,DELL服务器硬件报错解决方法——错误代码寄解决和处理办法...
  18. Ubuntu USB设备端口号绑定
  19. 两个系统怎样使用通用的接口来对接
  20. 阿里云冲出亚马逊:亚太市场份额排名第一

热门文章

  1. AbstractListView源码分析8
  2. object references an unsaved transient instance - save the transient instance before flushing .
  3. python-语言播报
  4. [Java]Thinking in Java 练习2.2
  5. 生成EXCEL文件是经常需要用到的功能,我们利用一些开源库可以很容易实现这个功能。...
  6. 爬取京东商品分类和链接
  7. 【CV论文阅读】 Fast RCNN + SGD笔记
  8. php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项(转)
  9. Android笔记 Application对象的使用-数据传递以及内存泄漏问题
  10. P2184 贪婪大陆