Elasticsearch 通过使用可以用多种编程语言编写的自定义脚本来扩展其功能的强大方式。最常见的是 Painless、Express 和 Mustache。 在本章中,我们将探讨如何创建自定义评分算法、特殊处理的返回字段、自定义排序和复杂的记录更新操作。 脚本Elasticsearch 的概念是 NoSQL 世界中先进的存储过程系统;因此,每个 Elasticsearch 的高级用户都应该学习如何掌握它。
Elasticsearch 原生提供 Java 脚本(即用 JAR 编译的 Java 代码)、Painless、Express 和 Mustache;但是,许多其他有趣的语言也可以作为插件使用,例如 Kotlin 和 Velocity。 在旧的 Elasticsearch 版本中,在 5.0 版之前,官方脚本语言是 Groovy。但为了更好的沙盒和性能,官方语言现在是 Painless,Elasticsearch默认提供。
在本章中,我们将介绍以下食谱:
- Painless scripting
- Installing additional script plugins
- Managing scripts
- Sorting data using scripts
- Computing return fields with scripting
- Filtering a search using scripting
- Using scripting in aggregations
- Updating a document using scripts
- Reindexing with a script