Scala 正在成为大数据场景中最常用的语言之一。这种语言为管理数据提供了很多便利,例如不变性和函数式编程。
在 Scala 中,您可以简单地使用我们在上一章中看到的 Java 库,但它们不是可扩展的,因为它们不提供类型安全(因为这些库中的许多将 JSON 作为字符串)并且易于使用异步编程。
在本章中,我们将了解如何使用成熟的库 elastic4s 在 Scala 中使用 Elasticsearch。其主要特点如下:
- Type-safe, concise DSL
- Integrates with standard Scala futures
- Uses the Scala collections library over Java collections
- Returns option where the Java methods would return null
- Uses Scala durations instead of strings/longs for time values
- Uses typeclass for marshalling and unmarshalling classes to/from Elasticsearch documents, and is backed by Jackson, Circe, Json4s, and PlayJson implementations
- Provides reactive-streams implementation
- Provides embedded nodes and testkit sub-projects, which are ideal for your tests
在本章中,我们将主要看到有关标准 elastic4s DSL 使用的示例和一些帮助程序,例如 circe 扩展,以便在类中轻松编组/解组文档。
在本章中,我们将介绍以下食谱:
- Creating a client in Scala
- Managing indices
- Managing mappings
- Managing documents
- Executing a standard search
- Executing a search with aggregations