`
donlianli
  • 浏览: 339934 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Elasticsearch...
浏览量:218328
社区版块
存档分类
最新评论

Elasticsearch升级至1.x后API的变化-三

阅读更多
 
请支持原创:http://donlianli.iteye.com/blog/2091127
 
1、索引格式

1.x之前的版本,被索引的文档type会同时出现在url和传输的数据格式中,如下:

 

PUT /my_index/my_type/1
{
  "my_type": {
     ... doc fields ...
  }
}

 

这种方式不太妥,如果一个document,本身也有my_type域,那么就会有歧义。1.x版本如果碰到上面的命令,会把my_type当成一个document的域进行处理。如果还想像以前一样使用,可以设置参数index.mapping.allow_type_wrapper.

2、搜索
新的搜索接口,要求参数中必须有一个顶级参数query。count,delete-by-query和validate-query这三个命令,认为query这个json对象全是查询条件。新的格式如下:
GET /_count
{
   
"query":{
       
"match":{
           
"title":"Interesting stuff"
       
}
   
}
}

1.x之前,query下面还可以包含filter。下面是0.90版的查询:

GET 'http://localhost:9200/twitter/tweet/_search?routing=kimchy'-d '{
   
"query":{
       
"filtered":{
           
"query":{
               
"query_string":{
                   
"query":"some query string here"
               
}
           
},
           
"filter":{
               
"term":{"user":"kimchy"}
           
}
       
}
   
}
}
'//这种格式不再支持

3、多字段搜索(Multi-fields)
新的格式如下:
"title":{
   
"type":"string",
   
"fields":{
       
"raw":   {"type":"string","index":"not_analyzed"}
   
}
}
4、停止词

新的版本没有使用英语默认的停止词(默认没有停止词)。

5、不带年份的日期值

新的版本,当没有指定是哪一年时,默认认为是1970年(在索引和搜索时都这样对待)。


6、参数
  • meters作为地理搜索的默认单位(1.x之前是miles)
  • min_similarity,fuzziness和edit_distance这些参数都别统一修改成了fuzziness。
  • ignore_missing参数被expand_wildcard,ignore_unavailable和allow_no_indices替代。
  • 在删除操作中,必须指定一个索引名称或者匹配符。
# v0.90 - delete all indices:
DELETE
/

# v1.0 - delete all indices:
DELETE
/_all
DELETE
/*
7、返回值
  • 返回值中ok字符已经被移除,作者认为这个附加信息毫无意义
  • found,not_found和exists参数被统一成为“found"。

Field values, in response to the fields parameter, are now always returned as arrays. A field could have single or multiple values, which meant that sometimes they were returned as scalars and sometimes as arrays. By always returning arrays, this simplifies user code. The only exception to this rule is when fields is used to retrieve metadata like the routing value, which are always singular. Metadata fields are always returned as scalars.

The fields parameter is intended to be used for retrieving stored fields, rather than for fields extracted from the _source. That means that it can no longer be used to return whole objects and it no longer accepts the _source.fieldname format. For these you should use the _source _source_include and _source_exclude parameters instead.

 

  • 参数查询中,返回的结果也是JSON格式。
  • analyze相关的API,不再支持直接返回文本格式的结果,只支持JSON和YAML格式。
8、不支持的操作

 

 

  • 文本搜索(text query)已经被移除,请使用匹配查询(match query)
  • 面向域的搜索(field query)已经被移除,请使用query_string代替
  • 面向文档的加权_boost字段已经移除,请使用function_score代替
  • path参数被移除,请使用copy_to参数
  • custom_score和custom_boost_score不再被支持,请使用fuction_score代替

 

关于我,邯郸人。
对这类话题感兴趣?欢迎发送邮件至donlianli@126.com
请支持原创:http://www.iteye.com/blogs/subjects/elasticsearch-tutor
 
0
0
分享到:
评论

相关推荐

    elasticsearch-jdbc-2.2.0.0-dist

    请注意,不同版本的Elasticsearch可能对插件有特定的要求,因此在升级或更换Elasticsearch版本时,可能需要检查并更新对应的Elasticsearch-JDBC版本以保持兼容性。同时,随着技术的发展,Elasticsearch社区可能会...

    最新版linux kibana-7.17.0-linux-x86_64.tar.gz

    Linux Kibana 7.17.0 是一个强大的数据可视化工具,专为与Elasticsearch集成而设计,用于提供实时分析和交互式仪表板。Kibana是Elastic Stack(以前称为ELK Stack,包括Elasticsearch、Logstash和Kibana)的重要组成...

    elasticsearch-bulk-insert-plugin-8.2.0.0-342.zip

    1. **API变化**:Elasticsearch 7.x版本对某些API进行了调整,比如弃用了`_search_type`参数,这意味着在Kettle的配置中需要更新相关的插件设置以适应新的API。 2. **索引模板**:Elasticsearch 7.x引入了更严格的...

    node-v16.16.0-x64

    1. **V8引擎升级**:每个Node.js版本通常都会随V8 JavaScript引擎的更新同步。v16.16.0可能会带来V8的最新优化,提升JavaScript和TypeScript的执行效率。 2. **ES特性支持**:Node.js v16.x系列会支持更多的...

    Elasticsearch1.x Java教程

    ### Elasticsearch 1.x Java 教程关键知识点梳理 #### 第一部分:搜索的背景 - **浅谈搜索**:本文档开篇介绍了搜索业务的一般需求,包括但不限于用户体验、搜索速度、准确性等方面的需求,并强调了Elasticsearch ...

    node-v12.18.1-x64.msi

    主版本号的变化通常伴随着重大的API改变或功能添加,次版本号升级则可能包含新功能但保持向后兼容,而修订版本号升级通常是修复bug和改进性能。 标签“es”可能指的是ECMAScript,这是一种标准化的JavaScript规范。...

    flume1.8.0和elasticsearch5.2.6整合

    - 修改`src/main/java/org/apache/flume/sink/elasticsearch/ElasticSearchSink.java`等类,适应Elasticsearch 5.x的API变化,比如使用`RestHighLevelClient`代替旧的`TransportClient`。 - 编译并打包修改后的...

    elasticsearch-6.0.1.tar.gz

    4. **数据类型变化**:Elasticsearch 6.x移除了对某些数据类型的直接支持,如`string`类型被拆分为`text`和`keyword`两种,分别用于全文搜索和精确匹配。 5. **安全增强**:此版本加强了安全性,包括内置的X-Pack...

    elasticsearch-5.2.0和kibana-5.2.0-windows-x86

    4. **API 变化**:Elasticsearch 不断更新其 RESTful API,5.2.0 中的一些旧API被弃用,新的API更加标准化,更便于开发者使用。 5. **Kibana 5.2.0**:作为Elasticsearch的数据可视化工具,Kibana同样在5.2.0版本中...

    node-v14.4.0-x64.rar

    5. **弃用警告**:对于即将被废弃的API,v14.4.0会发出警告,帮助开发者提前适应变化。 在安装Node.js v14.4.0时,用户需要注意以下几点: 1. **系统兼容性**:确保操作系统是64位的Windows,因为提供的版本是x64...

    elasticsearch-1.7.0

    Elasticsearch 1.7.0是1.x系列的集大成者,它的稳定性和性能优化为用户提供了坚实的基础。随着2.0的发布,Elasticsearch继续引领搜索和分析技术的发展,不断追求更高的效率和灵活性。无论是开发人员还是系统管理员,...

    Elasticsearch Java教程.pdf

    - **0.90.x升级至1.x后问题**:列出了从早期版本升级到1.x版本时可能遇到的问题及解决方案。 - **系统级别及设置方面**:涉及了Elasticsearch集群的管理和配置细节。 - **统计信息相关命令的变化**:概述了统计...

    官方elasticsearch-6.0.0.zip

    最后,值得注意的是,Elasticsearch 6.0.0不兼容5.x及更低版本的数据格式,因此升级前需要进行数据迁移。同时,为了确保兼容性,所有与Elasticsearch交互的应用程序也需要更新到支持6.0.0的版本。 总的来说,...

    elasticsearch-bulk-insert-plugin-9插件,支持ES7.16

    不过,需要注意的是,随着Elasticsearch版本的升级,其API和功能可能会有所变化,因此在升级Elasticsearch时,需确认插件是否需要更新或调整以保持兼容性。 在实际操作中,用户可以通过解压"elasticsearch-bulk-...

    flink如何写入Elasticsearch5和Elasticsearch7

    主要的变化是Elasticsearch从5.x开始弃用了`type`字段,而在7.x中完全移除了。以下是针对Elasticsearch7的配置和代码示例: punk 1: Maven 依赖 在7.x版本中,Flink的Elasticsearch连接器的artifactId更改为`flink-...

    Node.js官方工具14.17.3版本windows系统x64安装包

    在14.x版本中,Node.js引入了对ES模块的实验性支持,这是一种更现代的JavaScript模块系统,与CommonJS系统并行存在。这使得开发者可以使用`import`和`export`关键字来管理模块,提高代码可读性和可维护性。 此外,...

    SpringBoot 操作 ElasticSearch6.3.0,提供完整的Util进行增删改查

    同时,Elasticsearch的版本升级可能会导致API变化,因此在项目维护时要注意与新版本的兼容性。 总之,SpringBoot结合Elasticsearch提供了一种高效、便捷的方式来进行数据存储和检索。通过编写Util类和管理服务,...

    Elasticsearch(2.3.4-5.6.3)版本和head插件

    在使用Elasticsearch时,了解并掌握这些版本之间的变化和新增功能至关重要。例如,对于从2.3.4版本升级到5.6.3的用户,需要注意新版本可能带来的兼容性问题,以及如何利用新特性来提升系统的性能和安全性。同时,...

    Android Opengles 开发入门技术文档

    - GLES10、GLES10Ext、GLES11、GLES11Ext:提供了OpenGL ES 1.x的API。 - GLES20:对应OpenGL ES 2.0的API,包括新的方法如glDrawElements() 和 glVertexAttribPointer()。 - ETC1和ETC1Util:处理ETC1纹理编码和...

Global site tag (gtag.js) - Google Analytics