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

请支持原创:http://www.cnblogs.com/donlianli/p/3841762.html

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 /_allDELETE /*
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代替

关于我,邯郸人。微博:http://weibo.com/donlianli

对这类话题感兴趣?欢迎发送邮件至[email protected]

请支持原创:http://www.iteye.com/blogs/subjects/elasticsearch-tutor

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

时间: 2024-08-24 03:39:45

Elasticsearch升级至1.x后API的变化-三的相关文章

Elasticsearch从0.90(0.90.x)到1.2(1.x)API的变化-二

本文为官方文档的译文加个人理解.作者翻译时,elasticsearch(下面简称es)的版本为1.2.2. 请支持原创:http://www.cnblogs.com/donlianli/p/3836768.html 一.统计信息相关命令的变化 有关集群状态cluster_state, 节点信息nodes_info, 节点统计信息nodes_stats和索引信息indices_stats命令格式进行了统一,比如查看集群信息使用命令: curl -XGET http://localhost:9200

一家VC支持企业的发展轨迹——了解每次融资后股权的变化,以及股份是如何被稀释的【转载】

来源:ReachVc 如果你是一个不太了解融资的创业者,那么本文将对你很有用.通过武林外传同福客栈的例子,了解每次融资后股权的变化,以及股份是如何被稀释的. 话说,在闻名天下的关中七侠镇,有个叫做吕轻侯的创业者,他是个知识分子--落难秀才,因为找不到工作,所以在七侠镇镇政府的鼓励下开始创业,开了一家客栈--同福客栈.但由于客栈只提供单一的客房服务,再加上吕秀才自身的工作能力也不足,而且团队严重短缺--就他自己一个人,所以生意很一般,都快要关门大吉了.当然,作为这家创业公司的唯一创始人及员工,吕秀

AP_创建标准发票后会计科目的变化(概念)

2014-06-04 BaoXinjian 1. 创建Invoice,并查看所创建的科目 因为其Primary Ledger<US_USD_P>, 其对应一个Second Ledger<US_USD>,所以其会创建两套科目 2. Invoice 科目分析 (1).对应的DR<Item Expense>来源于Invoice Disturbutions Accounting (2). 对应的CR<Liability>来源于Supplier Site的设定 3.

前后端分离后API交互如何保证数据安全性

前后端分离后API交互如何保证数据安全性? 一.前言 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合.无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互. 网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,这样的接口对爬虫工程师来说是一种福音,要抓你的数据简直轻而易举. 数据的安全性非常重要,特别是用户相关的信息,稍有不慎就会被不法分子盗用,所以我们对这块要非

Elasticsearch升级到1.2(1.x)API的变化-二

一.统计信息相关命令的变化 有关集群状态cluster_state, 节点信息nodes_info, 节点统计信息nodes_stats和索引信息indices_stats命令格式进行了统一,比如查看集群信息使用命令: curl -XGET http://localhost:9200/_cluster/state/nodes?pretty=1 查看节点统计信息: curl -XGET http://localhost:9200/_nodes/stats?pretty=1 集群统计信息 curl

ElasticSearch之安装及基本操作API

ElasticSearch 是目前非常流行的搜索引擎,对海量数据搜索是非常友好,并且在高并发场景下,也能发挥出稳定,快速特点.也是大数据和索搜服务的开发人员所极力追捧的中间件.虽然 ElasticSearch 深受大家的喜爱,但是它的迭代速度之快,所以在相关社区老是有听说到学不动了的话语,也正是这种不断完善,才能拥有现在的社区活跃.我使用 ElasticSearch 时,从 5.x 到 6.x 版本,再到现在接触到 7.x 版本.从版本升级中,也看到了 ElasticSearch 对主流技术变化

elasticsearch建立索引操作的API

ElasticSearch-API-Index 索引创建API允许初始化一个索引.ElasticSearch对多重索引提供了支持,包括跨多个索引执行操作.每个索引在创建时可以让一个特定的设置项与其关联. 最简单的方式创建索引 curl -XPUT 'http://localhost:9200/twitter/' 在创建索引的时候指定分片和副本数量,参数格式采用YAML格式 curl -XPUT 'http://localhost:9200/twitter/' -d ' index:   numb

ElasticSearch 5.0.1 java API操作

今天来说下使用ES 5.0.1的API来进行编码. 开始之前,简单说下5.0.1跟之前的几个变化.之前的ES自身是不支持delete-by-query的,也就是通过查询来删除,可以达到批量的效果,是因为刷新的原因,应该够近实时的特性相关.一直是以一个插件的形式存在,到5.0.1时,倒腾了半天,还是官方文档说,已经废掉了这个插件,放到ES Core中来了.这是一个变化,另外,初始化ES client的方式也变化了,这个要吐槽一下,从1.7到2.X,初始化方式改了一遍,从2.X到5.X又变了,让人有

MathType破解版中公式保存后字体会变化?

在使用MathType数学公式编辑器编辑公式时,有时明明在MathType编辑窗口中编辑好的公式,保存好后却发现MathType公式字体变化了,原本的斜体变成了正体,该如何解决这个问题?   若有疑问可直接访问:http://www.mathtype.cn/wenti/ziti-bianhua.html         例如: 改变后成为 解决方法如下:       1.双击显示异常的公式进入MathType编辑窗口选中你要修改的符号或者字母,选择"样式"--"数学"