zoukankan      html  css  js  c++  java
  • 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上执行截图如下:

      

  • 相关阅读:
    caffe:使用C++来提取任意一张图片的特征(从内存读取数据)
    python:控制鼠标和键盘
    .dll 文件编写和使用
    python:打包成exe程序
    python:小乌龟turtle
    python:input()和raw_input()
    C++:哈希
    C++:线程(std::thread)
    GitHub:Git的使用
    链表
  • 原文地址:https://www.cnblogs.com/miracle-luna/p/10989780.html
Copyright © 2011-2022 走看看