【问题标题】:Why I'm getting unrecognized parameter: [query]为什么我得到无法识别的参数:[查询]
【发布时间】:2020-01-01 04:38:57
【问题描述】:

我使用的是 es 6.8 和 elasticvue(作为 firefox 插件)

我创建了一个索引:

put /q1
 {
    "mappings": {
        "my_type": {
            "properties": {
                "name" : {"type" : "text"},
                "last" : {"type": "text"},
                "age" : {"type": "integer"}
            }
        }
    }
 }

并放一些数据:

post /q1/my_type
 {

        "name" : "miki",
        "last" : "elk",
        "age" : "35"

 }

当我尝试搜索时:

get /q1/_search
{
    "query" : {
        "term" : { "name" : "miki" }
    }
}

我收到错误:

"error": {
    "root_cause": [
        {
            "type": "illegal_argument_exception",
            "reason": "request [/q1/_search] contains unrecognized parameter: [query]"
        }
    ],
    "type": "illegal_argument_exception",
    "reason": "request [/q1/_search] contains unrecognized parameter: [query]"
},
"status": 400

出了什么问题,我该如何解决?

【问题讨论】:

  • 我完全按照你说的做了,没有出现任何错误。您是否尝试过使用 Kibana 或者您正在使用其他方法进行搜索?
  • 我使用的是 elasticvue(作为 firefox 插件)

标签: elasticsearch


【解决方案1】:

当错误的 GET 参数发送到服务器时,可能会发生此错误。假设您使用的是elasticvue firefox 插件,并且您使用的是查询选项卡:

您可以将 GET 方法更改为 POST 方法,它应该可以正常工作。 elasticvue 似乎在这里使用 GET 方法时遇到了一些问题。查看 Firefox 中的开发者网络工具,请求将被发送到以下 URL:

http://localhost:9200/q1/_search?query=%5Bobject%20Object%5D

这显然是错误的,它将您的查询作为名为查询的 GET 参数发送!没有这样的 GET 参数,它应该将查询作为请求的正文而不是作为其参数发送。使用 POST 是一种替代方法,并且 Elasticsearch API 允许。您也可以将 kibana 用作官方的强大工具。

【讨论】:

    猜你喜欢
    • 2020-02-13
    • 2018-11-19
    • 2019-07-15
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多