预期[END_OBJECT]但得到[FIELD_NAME],kibana

时间:2017-03-07 11:49:42

标签: json elasticsearch kibana

当我试图组成一个具有模糊必须要求的复合bool查询时,有几个应该要求一个是通配符,我遇到这个错误信息。到目前为止,语法的任何改动都没有帮助我解决这个问题。

查询:

{
    "query": {
        "bool": {
            "must": {
                "fuzzy": {
                    "message": "<fuzzy string>",
                    "fuzziness": "auto"
                }
            },
          "should": [
            { "query": { "message": "<string>" } },
            { "query": { "message": "<string>" } },
            { "wildcard": 
                {
                    "query": { "message": "<partial string*>"}
                } 
            }
          ],
          "minimum_should_match": "50%"
        }
    } 
}

<>内的文字将替换为我搜索过的字符串。

1 个答案:

答案 0 :(得分:0)

您需要在query条款中将match替换为bool/should

> {   "query": {
>      "bool": {
>       "must": {
>         "fuzzy": {
>           "message": "<fuzzy string>",
>           "fuzziness": "auto"
>         }
>       },
>       "should": [
>         {"match": {"message": "<string>"}},                        <-- here
>         {"match": {"message": "<string>"}},                        <-- and here
>         {"wildcard": {"query": {"message": "<partial string*>"}}}
>       ],
>       "minimum_should_match": "50%"
>     }   } }