Scripted Fields(脚本字段)

贡献者 : 小瑶ApacheCNApache中文网

脚本字段(Scripted fields)根据您的 Elasticsearch 索引中的数据即时计算数据。脚本字段数据作为文档数据的一部分显示在 “发现” 选项卡(Discover tab)上,您可以在可视化(visualizations)中使用脚本字段。脚本化字段值在查询时计算,因此它们未编入索引并且无法搜索。

注意 :

Kibana 无法查询脚本字段。

警告 :

使用脚本字段来即时计算数据可能是资源非常密集型的,并且可以直接影响 Kibana 的性能。请记住,没有对脚本字段的内置验证。如果你的脚本有 BUG ,当你查看动态生成的数据时,你会得到异常。

Kibana 中定义脚本字段时,您可以选择脚本语言(scripting languages)。从 5.0 开始,默认选项是 Lucene 表达式Painless 。虽然你可以使用其他脚本语言,如果您在 Elasticsearch 中为它们启用动态脚本,不建议这样做,因为它们不能充分sandboxed

警告 :

Elasticsearch 5.0 开始,不推荐使用 GroovyJavascriptPython 脚本,并且将来会删除对这些脚本语言的支持。

你可以引用表达式中的任何单个值数字字段,例如 :

  1. doc['field_name'].value

有关脚本字段(scripted fields)和其他示例的更多背景,请参阅此博客:在 Kibana 脚本字段中使用 Painless

创建脚本字段(Creating a Scripted Field)

要创建脚本字段 :

  1. 转到 “设置(Settings)” > “索引(Indices)” 。
  2. 选择要添加脚本字段的索引模式。
  3. 转到 模式的 “脚本字段(Scripted Fields)” 选项卡。
  4. 单击添加脚本字段(Add Scripted Field)。
  5. 输入脚本字段的名称。
  6. 输入要用于从索引数据即时计算值的表达式。
  7. 单击保存脚本字段(Save Scripted Field)。

有关 Elasticsearch 中脚本字段的详细信息,请参阅 脚本(Scripting

更新脚本字段(Updating a Scripted Field)

要修改脚本字段 :

  1. 转到 “设置(Settings)” > “索引(Indices)” 。
  2. 单击要更改的脚本字段的 “编辑(Edit)” 按钮。
  3. 进行更改,然后单击 “保存脚本字段(Save Scripted Field)” 以更新字段。

警告 :

请记住,没有对脚本字段的内置验证。如果你的脚本有 bug ,当你尝试查看动态生成的数据时,你会得到异常。

删除脚本字段(Deleting a Scripted Field)

要删除脚本字段 :

  1. 转到 “设置(Settings )” > “索引(Indices)” 。
  2. 单击要删除的脚本字段的删除(Delete)按钮。
  3. 确认您确实要删除字段。