https://github.com/anti-social/elasticmagic-kt
Experiments with Elasticsearch query builder for Kotlin
https://github.com/anti-social/elasticmagic-kt
elasticsearch kotlin
Last synced: about 1 month ago
JSON representation
Experiments with Elasticsearch query builder for Kotlin
- Host: GitHub
- URL: https://github.com/anti-social/elasticmagic-kt
- Owner: anti-social
- License: apache-2.0
- Created: 2021-03-05T15:13:25.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-24T14:11:06.000Z (3 months ago)
- Last Synced: 2025-03-27T01:11:43.533Z (about 2 months ago)
- Topics: elasticsearch, kotlin
- Language: Kotlin
- Homepage: https://anti-social.github.io/elasticmagic-kt/latest/
- Size: 52.8 MB
- Stars: 45
- Watchers: 2
- Forks: 5
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/anti-social/elasticmagic-kt/actions/workflows/build.yaml)
[](https://codecov.io/gh/anti-social/elasticmagic-kt)
[](https://maven-badges.herokuapp.com/maven-central/dev.evo.elasticmagic/elasticmagic)
[](https://anti-social.github.io/elasticmagic-kt/)
[](https://github.com/anti-social/elasticmagic-kt/discussions/categories/q-a)# Elasticmagic for Kotlin
Elasticsearch query DSL for Kotlin
Read [User Guide](https://anti-social.github.io/elasticmagic-kt/latest/document/)
## Features
- Multiplatform (JVM, Native and JS)
- Asynchronous API
- No reflection (only for delegates)
- Sub-fields and sub-documents with navigation
- Typed query expression (when it is possible)
- Typed document source
- Parent child relations (ability to merge multiple documents into a single mapping)
- Focused on a search API
- Declarative search query modifications via `query filters`
- Supports several serialization libraries (`kotlinx.serialization` and `jackson` out of the box)
- Supports Elasticsearch `6.x`, `7.x` and `8.x` (autodetect Elasticsearch version)
- Supports Opensearch `1.x` and `2.x`## Not a goal
- Covering full Elasticsearch API
## Compatibility policy
- versions before `0.1` (`0.0.x`) can be binary and source incompatible; backward incompatible changes are allowed
- versions greater or equal `0.1` but before `1.0` (`0.x.y`):
- different minor versions can be binary and source incompatible
- 2 versions with the same minor version should be binary compatible
- versions higher or equal `1.0`:
- different major versions may require changing the source codes
- the same major but different minor versions should be source compatible.
Update from `1.2.0` to `1.3.0` may require recompilation
- same major and minor version mean that you can freely upgrade version of the library