elasticsearch 在类型为[doc]的映射中找不到[path]的字段
我的ES文档模型如下
elasticsearch 在类型为[doc]的映射中找不到[path]的字段,
elasticsearch,groovy,
elasticsearch,Groovy,我的ES文档模型如下 "hits": [ { "_source": { "variant_group": { "variant_info": [ { "name": "Toothpaste", "inventory": 10
"hits": [
{
"_source": {
"variant_group": {
"variant_info": [
{
"name": "Toothpaste",
"inventory": 10
}
],
"type_id": 1365
}
},
]
当我尝试在排序中执行此查询时:
{
"_script": {
"type": "number",
"order": "desc",
"script": {
"lang": "groovy",
"inline": "return doc['variant_group.variant_info'].values.any{ it -> it.inventory > 0 }"
}
}
}
出现以下错误
在与类型[merchant\u variant\u group]的映射中未找到[variant\u group.variant\u info]的字段。
我尝试使用containsKey
如下:
{
"_script": {
"type": "number",
"order": "desc",
"script": {
"lang": "groovy",
"inline": "return doc.containsKey('variant_group.variant_info') ? 1 : 0"
}
}
}
此脚本块返回0
而不是1
但是,如果我执行此操作:
{
"_script": {
"type": "number",
"order": "desc",
"script": {
"lang": "groovy",
"inline": "return doc.containsKey('variant_group.type_id') ? 1 : 0"
}
}
}
它返回预期的响应1
集合类型是否缺少一个gotcha,或者我的代码是否存在一些问题
谢谢 您应该使用“doc['variant\u group.variant\u info']”或“doc.variant\u group.variant\u info']”来代替“doc['variant\u group.variant\u info']”。我还很幸运地使用了“\u source.variant\u group.variant\u info” 您好,_source.variant_group.variant_信息似乎正在工作。但是无法访问variant_info对象中的键。我认为这是一个非常奇怪的行为variant_info指的是一个数组/列表,您可以在部分之后添加“.dump()”,您不确定是否要查看您拥有的内容。