设为首页 收藏本站
查看: 1553|回复: 0

[经验分享] Elasticsearch升级至1.x后API的变化-三

[复制链接]

尚未签到

发表于 2017-5-21 10:22:07 | 显示全部楼层 |阅读模式
 

请支持原创: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对象全是查询条件。新的格式如下:

[color=#000000 !important]GET [color=#666600 !important]/[color=#000000 !important]_count
[color=#666600 !important]{[color=#000000 !important]
    [color=#008800 !important]"query"[color=#666600 !important]:[color=#666600 !important]{[color=#000000 !important]
        [color=#008800 !important]"match"[color=#666600 !important]:[color=#666600 !important]{[color=#000000 !important]
            [color=#008800 !important]"title"[color=#666600 !important]:[color=#008800 !important]"Interesting stuff"[color=#000000 !important]
        [color=#666600 !important]}[color=#000000 !important]
    [color=#666600 !important]}[color=#000000 !important]
[color=#666600 !important]}


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

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



3、多字段搜索(Multi-fields)
新的格式如下:
[color=#008800 !important]"title"[color=#666600 !important]:[color=#666600 !important]{[color=#000000 !important]
    [color=#008800 !important]"type"[color=#666600 !important]:[color=#008800 !important]"string"[color=#666600 !important],[color=#000000 !important]
    [color=#008800 !important]"fields"[color=#666600 !important]:[color=#666600 !important]{[color=#000000 !important]
        [color=#008800 !important]"raw"[color=#666600 !important]:[color=#000000 !important]   [color=#666600 !important]{[color=#008800 !important]"type"[color=#666600 !important]:[color=#008800 !important]"string"[color=#666600 !important],[color=#008800 !important]"index"[color=#666600 !important]:[color=#008800 !important]"not_analyzed"[color=#666600 !important]}[color=#000000 !important]
    [color=#666600 !important]}[color=#000000 !important]
[color=#666600 !important]}
4、停止词
新的版本没有使用英语默认的停止词(默认没有停止词)。

5、不带年份的日期值



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

6、参数

  • meters作为地理搜索的默认单位(1.x之前是miles)
  • min_similarity,fuzziness和edit_distance这些参数都别统一修改成了fuzziness。

  • ignore_missing参数被expand_wildcard,ignore_unavailable和allow_no_indices替代。
  • 在删除操作中,必须指定一个索引名称或者匹配符。

[color=#880000 !important]# v0.90 - delete all indices:[color=#000000 !important]
DELETE [color=#666600 !important]/[color=#000000 !important]

[color=#880000 !important]# v1.0 - delete all indices:[color=#000000 !important]
DELETE [color=#666600 !important]/[color=#000000 !important]_all
DELETE [color=#666600 !important]/*
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




 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379526-1-1.html 上篇帖子: elasticsearch结合spring springmvc jest 使用做成WEB架构 下篇帖子: Elasticsearch源码分析之二------索引过程源码概要分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表