【发布时间】:2019-08-08 17:44:15
【问题描述】:
使用doc["abc"]时,发现没有字段"abc"异常,才发现params._source["abc"]一切都正确。
我检查了 doc["abc"].value 的状态,它显示为 null ,同时 doc["abc"].empty 为 true。
1.elasticsearch 版本:5.x
2.使用无痛内联排序脚本
任何人都可以弄清楚是什么。发生了什么?
【问题讨论】:
使用doc["abc"]时,发现没有字段"abc"异常,才发现params._source["abc"]一切都正确。
我检查了 doc["abc"].value 的状态,它显示为 null ,同时 doc["abc"].empty 为 true。
1.elasticsearch 版本:5.x
2.使用无痛内联排序脚本
任何人都可以弄清楚是什么。发生了什么?
【问题讨论】:
根据使用脚本的位置,它可以访问某些特殊变量和文档字段。我不知道你的映射,但我认为这个链接会回答你的问题 - Accessing document fields and special variables
从上面的链接进一步引用:
文档值和文本字段
doc['field'] 语法也可以用于分析的文本字段,如果 fielddata 已启用,但请注意:在文本字段上启用 fielddata 需要将所有术语加载到 JVM 堆中,这可能非常 在内存和CPU方面都很昂贵。很少有意义 从脚本访问文本字段。
Doc 值是一个列字段值存储,默认启用所有 分析的文本字段除外。
_source 提供对原始文档正文的访问权限 索引(包括区分空值和空值的能力 字段、来自普通标量的单值数组等)。
如果您的字段 abc 是已分析的文本字段或对象,doc 将不起作用。
【讨论】: