【发布时间】:2019-10-11 13:35:55
【问题描述】:
我有一个弹性文档,如下所示。
{
"process_id" : "123",
"user_info" : [{
"first_name":"A",
"last_name: "B"
}]
}
{
"process_id" : "123",
"user_info" : [{
"first_name":"C",
"last_name: "B"
},
{"first_name" : "A",
"last_name":"D"
} ]
}
场景 1:
我没有将嵌套类型设置为“user_info”字段。 我搜索“process_id”为 123,first_name 为 A,last_name 为 B,我得到了结果中的两个文件。
场景 2:
搜索返回错误。看起来我将无法搜索嵌套项和父项中的项。
查询如下:
{
"query": {
"query_string": {
"query": "process_id:123",
"nested": {
"path": "user_info",
"query": {
"query_string": {
"query": "(user_info.first_name:A AND user_info.last_name:B"
}
}
}
} } }
错误响应如下。
{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "[query_string] unknown token [START_OBJECT] after [nested]",
"line": 1
}
],
"type": "parsing_exception",
"reason": "[query_string] unknown token [START_OBJECT] after [nested]",
"line": 1,
},
"status": 400
}
理想的响应应该是当我搜索process_id为123,first_name为A,last_name为B时,只需要返回第一个文档。
注意:属性名称保持通用,以便说明实际情况。
【问题讨论】:
-
请添加您正在尝试执行的搜索及其引发的错误。
-
@KevinQuinzel 更新了我在查询中收到的查询和错误响应
标签: elasticsearch elasticsearch-query