弹性搜索bool查询错误

时间:2017-04-24 16:09:52

标签: elasticsearch

我试图运行像这样定义的弹性搜索查询:

query = {   
    "query": {
        "bool": {
            "should": [
                {"term": {"a": "a1"}},
                {"term": {"b": "b1"}},
                {"term": {"c": "c1"}}       
            ], 
        },
    },
}

es.search("my_index", body=q1)

但是我收到以下错误:

RequestError: TransportError(400, 'search_phase_execution_exception',         
'failed to create query:
...

查询的问题是什么?

2 个答案:

答案 0 :(得分:0)

由于您的数组中有一个尾随逗号,因此可能无法解析JSON。 (以及每个查询和bool属性之后的更多内容)JSON规范不允许使用多余的尾随逗号。

答案 1 :(得分:0)

试试这个: -

{   
    "query": {
        "bool": {
            "should": [
                {"term": {"a": "a1"}},
                {"term": {"b": "b1"}},
                {"term": {"c": "c1"}}    
            ]
        }
    }
}