【问题标题】:[es painless]difference between doc and params._source[es painless] doc 和 params._source 之间的区别
【发布时间】: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.使用无痛内联排序脚本

任何人都可以弄清楚是什么。发生了什么?

【问题讨论】:

    标签: elasticsearch-painless


    【解决方案1】:

    根据使用脚本的位置,它可以访问某些特殊变量和文档字段。我不知道你的映射,但我认为这个链接会回答你的问题 - Accessing document fields and special variables

    从上面的链接进一步引用:

    文档值和文本字段

    doc['field'] 语法也可以用于分析的文本字段,如果 fielddata 已启用,但请注意:在文本字段上启用 fielddata 需要将所有术语加载到 JVM 堆中,这可能非常 在内存和CPU方面都很昂贵。很少有意义 从脚本访问文本字段。

    Doc 值是一个列字段值存储,默认启用所有 分析的文本字段除外。

    _source 提供对原始文档正文的访问权限 索引(包括区分空值和空值的能力 字段、来自普通标量的单值数组等)。

    如果您的字段 abc 是已分析的文本字段或对象,doc 将不起作用。

    【讨论】:

      猜你喜欢
      • 2015-06-22
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2021-12-25
      • 2020-05-10
      相关资源
      最近更新 更多