嵌套过滤器内的query_string过滤器会引发错误

时间:2015-05-11 22:25:53

标签: elasticsearch nested filtering

在这个例子中,我已经放置了一个完整的查询示例,该示例已经与我工作的非工作部分配对。

基本上我们有一个文件在datailItems下有一个嵌套的文档类型,并试图对该嵌套文档中的字段执行query_string过滤器失败。我采取相同的部分,并在非嵌套字段上运行它,它的工作原理。显然我做错了。

我收到的错误是nested: QueryParsingException[[******] [_na] filter malformed, must start with start_object]

那么,这样做的正确方法是什么?

一些警告。 “和”用于包含bool,范围等的进一步过滤要求......我已经删除了这个例子的其他要求。

{
    "size" : 1,
    "query" : {
        "filtered" : {
            "filter" : {
                "and" : [{
                        "nested" : {
                            "path" : "detailItems",
                            "filter" : {
                                "and" : [{
                                        "query" : {
                                            "query_string" : {
                                                "detailItems.name" : {
                                                    "query" : "mastersettings",
                                                    "minimum_should_match" : 1
                                                }
                                            }
                                        }
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

OP中的query_string在语法上不正确,下面是如何重写查询字符串的示例:

  "size" : 1,
    "query" : {
        "filtered" : {
            "filter" : {
                "and" : [{
                        "nested" : {
                            "path" : "detailItems",
                            "filter" : {
                                "and" : [{
                                        "query" : {
                                            "query_string" : {
                                                "fields": [
                                                   "detailItems.name" 
                                                ], 
                                                "query" : "mastersettings",
                                                "minimum_should_match" : 1

                                            }
                                        }
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        }
    }