【问题标题】:Painless (Elasticsearch) can't use keyword - script errorPainless (Elasticsearch) 不能使用关键字 - 脚本错误
【发布时间】:2020-01-05 10:35:59
【问题描述】:

我正在尝试在 Kibana 中创建一个脚本字段,用于检查字段“Direction”是否为“I”。

if (doc['Direction'].value != "I") {return 1;} else {return 0;}

但由于某种原因,它不起作用。对于索引映射中未明确提及的所有其他字段,它以这种方式工作,但我不得不在映射中提到方向,因为我还有一个指向它的别名。对于方向,我将以下内容放入映射文件中:

"Direction": {
      "type": "keyword"
    }

还有一个别名指向Direction:

"ISDN_Direction": {
      "path": "Direction",
      "type": "alias"
    }

但这两个字段都不能在无痛脚本中使用。我没有收到错误,但前 10 个结果的结果预览只是空的。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 索引模式中是否有相同的关键字字段?不知何故,在字符串列无痛的情况下抛出错误。如果在索引模式中有 .keyword 列可用,请使用它。
  • 不,很遗憾,我在索引模式中没有此字段的关键字字段。我猜 ES 会自动为映射中未明确提及的所有字段创建关键字字段?与其他关键字字段一起工作正常,只是我自己分配了关键字类型,这不起作用

标签: elasticsearch kibana elasticsearch-painless


【解决方案1】:

我发现了问题! 我更改了数据类型映射,但我的 ES DB 中仍然有索引,该索引在“文本”上具有旧映射。 Kibana 没有显示映射冲突,因为文本和关键字都是字符串。

我删除了将字段映射到“文本”的旧索引,现在轻松计算没有任何问题:slight_smile:

【讨论】:

    猜你喜欢
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    相关资源
    最近更新 更多