我正在使用es 6.8。
我创建了一个索引:
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
出什么问题了,我该如何解决?
答案 0 :(得分:1)
将错误的GET参数发送到服务器时,可能会发生此错误。假设您使用的是elasticvue
firefox插件,并且使用的是查询标签:
您可以将GET方法更改为POST方法,并且应该可以正常工作。似乎elasticvue
在这里使用GET方法存在一些问题。在firefox中查看开发者网络工具,请求将发送到以下URL:
http://localhost:9200/q1/_search?query=%5Bobject%20Object%5D
这显然是错误的,它以名为query的GET参数发送查询!没有这样的GET参数,它应该将查询作为请求的主体而不是作为参数发送。使用POST是替代方法,并且Elasticsearch API允许使用。您也可以将kibana用作官方强大的工具。