多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Scripted Fields(脚本字段) 原文链接 : [https://www.elastic.co/guide/en/kibana/5.2/scripted-fields.html](https://www.elastic.co/guide/en/kibana/5.2/scripted-fields.html) 译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=8160034](http://www.apache.wiki/pages/viewpage.action?pageId=8160034) 贡献者 : [小瑶](/display/~chenyao),[ApacheCN](/display/~apachecn),[Apache中文网](/display/~apachechina) 脚本字段(**Scripted fields**)根据您的 **Elasticsearch** 索引中的数据即时计算数据。脚本字段数据作为文档数据的一部分显示在 "发现" 选项卡(**Discover tab**)上,您可以在可视化(**visualizations**)中使用脚本字段。脚本化字段值在查询时计算,因此它们未编入索引并且无法搜索。 注意 : **Kibana** 无法查询脚本字段。 警告 : 使用脚本字段来即时计算数据可能是资源非常密集型的,并且可以直接影响 **Kibana** 的性能。请记住,没有对脚本字段的内置验证。如果你的脚本有 **BUG** ,当你查看动态生成的数据时,你会得到异常。 在 **Kibana** 中定义脚本字段时,您可以选择脚本语言(**scripting languages**)。从 **5.0** 开始,默认选项是 [Lucene 表达式](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/modules-scripting-expression.html)和 [Painless](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/modules-scripting-painless.html) 。虽然你可以使用其他脚本语言,如果您在 **Elasticsearch** 中为它们启用动态脚本,不建议这样做,因为它们不能充分[sandboxed](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/modules-scripting-security.html) 。 警告 : 从 **Elasticsearch 5.0** 开始,不推荐使用 **Groovy** , **Javascript** 和 **Python** 脚本,并且将来会删除对这些脚本语言的支持。 你可以引用表达式中的任何单个值数字字段,例如 :  ``` doc['field_name'].value ``` 有关脚本字段(**scripted fields**)和其他示例的更多背景,请参阅此博客:[在 Kibana 脚本字段中使用 Painless](https://www.elastic.co/blog/using-painless-kibana-scripted-fields) 。 ### 创建脚本字段(Creating a Scripted Field) 要创建脚本字段 :  1. 转到 "设置(**Settings**)" > "索引(**Indices**)" 。 2. 选择要添加脚本字段的索引模式。 3. 转到 模式的 "脚本字段(**Scripted Fields**)" 选项卡。 4. 单击添加脚本字段(**Add Scripted Field**)。 5. 输入脚本字段的名称。 6. 输入要用于从索引数据即时计算值的表达式。 7. 单击保存脚本字段(**Save Scripted Field**)。 有关 **Elasticsearch** 中脚本字段的详细信息,请参阅 [脚本(**Scripting**)](https://www.elastic.co/guide/en/elasticsearch/reference/5.2/modules-scripting.html)。 ### 更新脚本字段(Updating a Scripted Field) 要修改脚本字段 :  1. 转到 "设置(**Settings**)" > "索引(**Indices**)" 。 2. 单击要更改的脚本字段的 "编辑(**Edit**)" 按钮。 3. 进行更改,然后单击 "保存脚本字段(**Save Scripted Field**)" 以更新字段。 警告 : 请记住,没有对脚本字段的内置验证。如果你的脚本有 **bug** ,当你尝试查看动态生成的数据时,你会得到异常。 ### 删除脚本字段(Deleting a Scripted Field) 要删除脚本字段 :  1. 转到 "设置(**Settings **)" > "索引(**Indices**)" 。 2. 单击要删除的脚本字段的删除(**Delete**)按钮。 3. 确认您确实要删除字段。