Fork me on GitHub

Elasticsearch 6.2.3版本 filtered 报错问题 no [query] registered for [filtered]

背景描述

近期在学习《Elasticsearch 权威指南》上的一些基本命令,在操作到 filtered 进行过滤查询的时候,报错 “no [query] registered for [filtered]”。

1)查询语句如下:

复制代码
GET _search
{
    "query":{
        "filtered":{
            "filter":{
                "range":{
                    "age":{
                        "gt":30
                    }
                }
            },
            "query":{
                "match":{
                    "last_name":"smith"
                }
            }
        }
    }
}
复制代码

 

2)报错信息如下:

复制代码
{
  "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "no [query] registered for [filtered]",
        "line": 3,
        "col": 20
      }
    ],
    "type": "parsing_exception",
    "reason": "no [query] registered for [filtered]",
    "line": 3,
    "col": 20
  },
  "status": 400
}
复制代码

 

3)Kibana 的 Dev Tools 执行截图如下:

 

原因分析

Elasticsearch 在 5.0版本后,将 filtered 替换成了bool

 

解决方案

1)正确的过滤查询语句如下:

复制代码
GET _search
{
    "query" : {
        "bool" : {
            "filter" : {
                "range" : {
                    "age" : {
                        "gt" : 30
                    }
                }
            },
            "must" : {
                "match" : {
                    "last_name" : "Smith"
                }
            }
        }
    }
}
复制代码

 

2)Kibana 的 Dev Tools上执行截图如下:

 

  

posted @   龙凌云端  阅读(3207)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示