弹性搜索 - 使用查询UI搜索精确匹配的字符串

时间:2018-02-22 11:58:35

标签: hadoop elasticsearch elasticsearch-plugin elasticsearch-5

这是我的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\"}}}]"  

任何帮助?

1 个答案:

答案 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\"