You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**SoftClient4ES** is a modular and version-resilient interface built on top of Elasticsearch clients, providing a unified and stable API that simplifies migration across Elasticsearch versions, accelerates development, and offers advanced features for search, indexing, and data manipulation.
10
+
11
+
## Key Features
12
+
13
+
**Unified Elasticsearch API**
14
+
This project provides a trait-based interface (`ElasticClientApi`) that aggregates the core functionalities of Elasticsearch: indexing, searching, updating, deleting, mapping, aliases, refreshing, and more. This design abstracts the underlying client implementation and ensures compatibility across different Elasticsearch versions.
15
+
16
+
-`JestClientApi`: For Elasticsearch 6 using the open-source [Jest client](https://github.com/searchbox-io/Jest).
17
+
-`RestHighLevelClientApi`: For Elasticsearch 6 and 7 using the official high-level REST client.
18
+
-`ElasticsearchClientApi`: For Elasticsearch 8 and 9 using the official Java client.
19
+
20
+
By relying on these concrete implementations, developers can switch between versions with minimal changes to their business logic.
21
+
22
+
**SQL to Elasticsearch Query Translation**
23
+
Elastic Client includes a parser capable of translating SQL `SELECT` queries into Elasticsearch queries. The parser produces an intermediate representation, which is then converted into [Elastic4s](https://github.com/sksamuel/elastic4s) DSL queries and ultimately into native Elasticsearch queries. This allows data engineers and analysts to express queries in familiar SQL syntax.
24
+
25
+
**Dynamic Mapping Migration**
26
+
Elastic Client provides tools to analyze and compare existing mappings with new ones. If differences are detected, it can automatically perform safe migrations. This includes creating temporary indices, reindexing, and renaming — all while preserving data integrity. This eliminates the need for manual mapping migrations and reduces downtime.
27
+
28
+
**High-Performance Bulk API with Akka Streams**
29
+
Bulk operations leverage the power of Akka Streams to efficiently process and index large volumes of data. This stream-based approach improves performance, resilience, and backpressure handling, especially for real-time or high-throughput indexing scenarios.
30
+
31
+
**Akka Persistence Integration**
32
+
The project offers seamless integration with Akka Persistence. This enables Elasticsearch indices to be updated reactively based on persistent events, offering a robust pattern for event-sourced systems.
33
+
34
+
## Roadmap
35
+
36
+
Future enhancements include expanding the SQL parser to support additional operations such as `INSERT`, `UPDATE`, and `DELETE`. The long-term vision is to deliver a fully functional, open-source **JDBC connector for Elasticsearch**, empowering users to interact with their data using standard SQL tooling.
37
+
38
+
## License
39
+
40
+
This project is open source and licensed under the Apache License 2.0.
0 commit comments