在这个例子中,我已经放置了一个完整的查询示例,该示例已经与我工作的非工作部分配对。
基本上我们有一个文件在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
}
}
}
}
]
}
}
}
]
}
}
}
}
答案 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
}
}
}
]
}
}
}
]
}
}
}