elasticsearch6.0更新(ES持续更新)

一、Aggregations changes

1、禁用include和exclude的子结构,使用直接key:value方式。

//旧的方式
POST /twitter/_search?size=0
{
    "aggs" : {
        "top_users" : {
            "terms" : {
                "field" : "user",
                "include": {
                  "pattern": "foo.*"
                },
                "exclude": {
                  "pattern": ".*bar"
                }
            }
        }
    }
}
//新的方式
POST /twitter/_search?size=0
{
    "aggs" : {
        "top_users" : {
            "terms" : {
                "field" : "user",
                "include": "foo.*",
                "exclude": ".*bar"
            }
        }
    }
}

2、data_format根据format内容解读from和to内容

在以前的版本里from和to总是解读为epoch_millis,导致像epoch_seconds等无效了,现在如果在mapping里的format不兼容数据类型,就必须在data_format里提供兼容的format,否则就报错。

3、在term query中global_ordinals_hash和global_ordinals_low_cardinality 被禁用

在6.x版本中terms aggregations只保留了map和global_ordinals两个选项,默认是global_ordinals,只有在query命中的值很少时可以使用map,其他情况使用global_ordinals明显要快很多。官方文档链接

4、在复合聚合中禁用missing

在composite aggregation中使用missing_bucket代替。

二、Analysis changes

1、Synonym Token Filter

tokenizer 和 ignore_case参数被禁用,在新创建的索引中将被忽略,在之前5.x版本创建的索引不受影响。

2、在高亮显示时限制分析文本的最大长度

高亮显示一个没有偏移量和词向量被索引的文本时,这个文本是在内存里实时做请求分析。对于大的文本会使用大量时间和内存,为了防止这张情况发生,在下一个主要版本中限制最大长度为1000000字符。在当前版本还是没有做这个限制的,在分析文本超过1000000时会发出弃用的警告。这个限制可以通过index.highlight.max_analyzed_offset来更改。

3、standard过滤已经被弃用

standard filter不是Standard Tokenizer也不是Standard Analyzer这三个有区别。因为standard filter 在流中不会改变任何东西,所以被弃用了。

4、禁用standard_html_strip analyzer

三、Cat API changes(官方文档)

1、cat线程池中的无限队列大小

以前,如果支持线程池的队列大小无限制,则cat线程池API将在queue_size列中输出空字符串。这已更改为现在输出-1,因此输出始终存在且始终为数字。

四、Clients changes

1、Java High Level REST Client

在5.6.0版本里就加入了Java High Level REST Client,这个设计在将来会代替TransportClient。

五、Cluster changes

之前的path.data不再有cluster name了

# Assuming path.data is /tmp/mydata
# No longer supported:
$ tree /tmp/mydata
/tmp/mydata
├── 
│   └── nodes
│       └── 0
│           └── 

# Should be changed to:
$ tree /tmp/mydata
/tmp/mydata
├── nodes
│   └── 0
│       └── 

六、Document API changes

1、version type force removed

之前可以指定version_type值为force,覆盖之前的版本检查

2、Upserts no longer support versions(官方文档)

这个就是乐观锁,es已经有了乐观并发控制了

Deprecated in 6.7.0. Please use if_seq_no & if_primary_term instead. See Optimistic concurrency control for more details.

 

3、created field removed in the Index API(在索引API中created域被移除了)

以后用operation 域代替。

4、found field removed in the Delete API

以后用operation 域代替。

七、Geo changes

八、Indices changes

1、用index_patterns代替之前的template

因为这个字段的值可以是数组也可以是一个单独的值,新的写法下面两个都可以

PUT _template/template_1
{
  "index_patterns": ["te*", "bar*"],
  "settings": {
    "number_of_shards": 1
  }
}
PUT _template/template_2
{
  "index_patterns": "te*",
  "settings": {
    "number_of_shards": 1
  }
}

2、移除影子副本

影子副本没有太大的作用,同时移除下面三个settings

index.shared_filesystem
index.shadow_replicas
node.add_lock_id_to_custom_path

3、open和close Index API通配符可以匹配不上索引

allow_no_indices设置默认值从false改为true。

4、删除document

从不存在的索引中删除document不再创建索引。但是如果用的是外部版本仍然会创建索引并把document标记为删除。外部版本就是自己添加一个字段作为版本控制。

5、索引别名api只针对解析索引

在delete index  api不再接受别名,只接受索引名字或者通配符。

6、在索引表达式中“+”号不再支持

因为加不加都一样的效果。

7、Translog保留

Translog文件默认保留12个小时512M大小,并不会再flush时删除。

8、限制在ShingleTokenFilter中最大值和最小值

限制最大值减最小值默认等于3,这个值可以用index.max_shingle_diff更改。但是如果超过了这个限制就会报被弃用警告。

九、Ingest changes(ingest是做预处理的节点)

1、timestamp类型的元数据类型从java.lang.String 改为 java.util.Date

2、

十、Java API changes

十一、Mapping changes

十二、Packaging changes

十三、Percolator changes

十四、Plugins changes

十五、Reindex changes

1、size parameter

在reindex是size参数不能设置为-1,如果所有的文档都请求就不需要带size参数

十六、REST changes

十七、Scripting changes

十八、Search and Query DSL changes

十九、Settings changes

二十、Stats and info changes

你可能感兴趣的:(elasticsearch)