ElasticSearch7 新特性-type类型报错

文章目录

        • 背景
          • 1. ES 数据库的存储结构变化:去除了Type
          • 2.创建索引mapping关系的时候,容易出的错:Root mapping definition has unsupported parameters
          • 3.默认配置变化:默认节点名称为主机名,默认分片数为1,不再是5
          • 4.查询相关速度优化:Weak-AND算法
          • 5.彻底废除_all 字段的支持,为提升性能默认不在支持全文检索
          • 6.新增的功能
            • 6.1新增应用程序主动检测功能,搭配对应版本的kibana,用户可监测应用服务的健康状态,并在出现问题后及时发出通知
            • 6.2新增间隔查询(Intervals Queries),用户可设置多字符串在文档中出现的先后顺序进行检索
            • 6.3 自带jdk,所以在安装ES时不再需要单独下载和配置JAVA_HOME。
            • 6.4 的集群协调子系统,缩减配置项提升稳定性。时间戳纳秒级支持,提升数据精度
          • 7.不会再有OOM(内存溢出)的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超过单机处理的最大内存限制时会被截断,并抛出异常

背景

原来一直用的ES6,刚转到ES7踩得一些坑,和一些新特性的学习过程。

1. ES 数据库的存储结构变化:去除了Type
  • es6时,官方就提到了es7会删除type,并且es6时已经规定每一个index只能有一个type。在es7中使用默认的_doc作为type,官方说在8.x版本会彻底移除type。
  • api请求方式也发送变化,对索引的文档进行操作的时候,默认使用的Type是 _doc
  • 如获得某索引的某ID的文档:GET index/_doc/id其中index和id为具体的值
2.创建索引mapping关系的时候,容易出的错:Root mapping definition has unsupported parameters
  • ElasticSearch6 中创建索引映射关系的语法
put es_test_index
{
    "settings": {
        "index": {
            "analysis.analyzer.default.type": "ik_max_word"
        }
    },
    "mappings": {
    	 "item": {  # type的名字 item
	        "properties": {
	            "site_id": {
	                "type": "long",
	                "index": True
	            },
	            "content": {
	                "type": "text"
	            }
	        }
        }
   }
}   
  • ElasticSearch7 中执行需要去掉 Type类型,修改为
put es_test_index
{
    "settings": {
        "index": {
            "analysis.analyzer.default.type": "ik_max_word",
            "number_of_shards":3,
		    "number_of_replicas":2
        }
    },
    "mappings": {
        "properties": {
            "site_id": {
                "type": "long",
                "index": True
            },
            "content": {
                "type": "text"
            }
        }
   }
}   
3.默认配置变化:默认节点名称为主机名,默认分片数为1,不再是5
4.查询相关速度优化:Weak-AND算法
  • weak-and算法,又称为Wand算法, 输入是n个倒排队列,输出top K个得分最高的文档doc
5.彻底废除_all 字段的支持,为提升性能默认不在支持全文检索
6.新增的功能
6.1新增应用程序主动检测功能,搭配对应版本的kibana,用户可监测应用服务的健康状态,并在出现问题后及时发出通知
6.2新增间隔查询(Intervals Queries),用户可设置多字符串在文档中出现的先后顺序进行检索
6.3 自带jdk,所以在安装ES时不再需要单独下载和配置JAVA_HOME。

取消Query结果中的Hits Count的支持(聚合查询除外),使得查询性能大幅提升。这就意味着,每次查询后将不能得到精确的结果集数量

6.4 的集群协调子系统,缩减配置项提升稳定性。时间戳纳秒级支持,提升数据精度
  • 移除 minimum_master_nodes 参数,让 Elasticsearch 自己选择可以形成仲裁的节点。
  • 典型的主节点选举现在只需要很短的时间就可以完成。
  • 集群的伸缩变得更安全、更容易,并且可能造成丢失数据的系统配置选项更少了。
  • 节点更清楚地记录它们的状态,有助于诊断为什么它们不能加入集群或为什么无法选举出主节点。
7.不会再有OOM(内存溢出)的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超过单机处理的最大内存限制时会被截断,并抛出异常

你可能感兴趣的:(ElasticSearch)