这是我的JSON。
{
"id":100,
"name":"xxx",
"hobbies":["cricket","footbal","singing & dancing"]
}
我需要过滤“其他人”中的“唱歌和跳舞”字符串。执行以下查询。
http://localhost:9200/employeed/data/_search?q={"query":{"query_string":{"query" : "hobbies:Singing & dancing"}}}
我正处于异常之下。
"type": "illegal_argument_exception",
"reason": "request [employee/data/_search] contains unrecognized parameter: [ Singing\"}}}]"
任何帮助?
答案 0 :(得分:0)
您尝试在URI中发送DSL查询。两个人不要混在一起,请看这里:https://www.elastic.co/guide/en/elasticsearch/reference/6.2/search-search.html
搜索API允许您执行搜索查询并返回与查询匹配的搜索匹配。可以使用简单的查询字符串作为参数或使用请求主体来提供查询。
您可以使用DSL并将其发送到您的请求正文中,也可以将您的网址更改为 包含您要使用的爱好query_string。像这样:
http://localhost:9200/employeed/data/_search?q=hobbies%3A%5C%22Singing%20%26%20dancing%5C%22
query_string部分也是URL编码的。我还在您的搜索值周围添加了引号,否则它们会将它们组合在一起。未编码的版本:
hobbies:\"Singing & dancing\"