elasticsearch5.0.0版本搜索和DSL的变化

搜索和DSL查询的变化

1、search_type=count参数移除,这个是在2.0版本中已经不推荐使用的了,取而代之的是用查询,size设为0.

POST /my_index/_search
{
  "size": 0,
  "aggs": {
    "my_terms": {
       "terms": {
         "field": "foo"
       }
     }
  }
}

2、search_type=scan参数移除,这个是在2.1版本中已经不推荐使用的了。现在滚动请求用_doc排序达到同样的效果。

POST /my_index/_search?scroll=2m
{
  "sort": [
    "_doc"
  ]
}

3、分片查询限制,在1000个以内,因为分片查询会消耗大量的内存和cpu,如果想要绕开这个限制,需要在配置文件中修改参数:action.search.shard_count.limit。

3.1、fields参数将被stored_fields参数替换,它只返回存储的字段,将不在从 _source字段中获取。

3.2、fielddata_fields参数将被docvalue_fields参数替换。

3.3、是否存在接口取消,取而代之的是用查询获得,参数size设为0,terminate_after设置为1。

4、查询变化

4.1、不支持geo_point的term查询。

4.2、fuzzy查询在numeric, date,ip字段中失效,取而代之的是范围查询。

4.3、在_uid和_id字段中查询range和prefix将不被支持。

4.4、查询不存在的索引将返回失败,而不是返回no hits。

4.5、在fuzzy查询中将不支持min_similarity参数。

4.6、在query_string查询中将不支持fuzzy_min_sim参数。

4.7、在completion suggester中取消edit_distance参数。

4.8、在索引查询中将不在支持no_match_filter参数。

4.9、在嵌套查询中将不在支持filter字段查询。

4.10、在term查询中将不在支持minimum_should_match和disable_coord,取消了execution参数。

4.11、在_score查询中取消了top level过滤。

4.12、在span_near查询中取消了collect_payloads参数。

4.13、在 nested和has_child查询中取消了score_type参数, has_parent查询中取消了score_mode,同时取消了 total score mode。

4.14、在has_child查询中max_children参数在以前的版本中设置为0表示没有限制,现在表示0.

4.15、如果_field_names字段被禁用时, exists查询将返回失败。

4.16、如果cross_fields,phrase,phrase_prefix类型中有模糊(fuzziness),则multi_match查询将失败。

4.17、GeoPolygonQuery,GeoDistanceQuery,GeoBoundingBoxQuery查询中coerce, normalize, ignore_malformed参数将失效,用validation_method 参数代替。

4.18、geo_distance_range 查询将取消,将用geo_distance聚合来代替。

4.19、在search接口中top level过滤将取消,用post_filter来代替。

4.20、多个高亮显示名称将不被支持,唯一支持的是plain, fvh and postings。

4.21、term vectors API不再坚持未映射的字段的映射。DFS参数在term vectors API中已经被完全删除。

4.22、reverse参数在排序中将被取消,在validation_method方法中取消coerce和ignore_malformed参数。

4.23、Top level inner hits语法被取消,inner hits只能在存在nested, has_child,has_parent查询中一部分。

查询分析器:

在profiling查询的返回值中,query_type改名为type,lucene改名为description

 

搜索偏好:

在搜索偏好_only_node被删除,可以用_only_nodes和指定的node ID来实现。_only_nodes替换了_only_node的功能,_only_node不支持多个节点。preference _shards参数接收用|分来的第二个参数,例如_shards:2,3|_primary。

默认使用BM25评分算法,替换之前的TF/IDF。

fields字段被修改为stored_fields。

本文由赛克 蓝德(secisland)原创,转载请标明作者和出处。

转载于:https://my.oschina.net/secisland/blog/790831

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值