Elasticsearch
Elasticsearch is the de-facto standard for performant full-text searching, and is often also used for aggregating log data thanks to its powerful aggregation framework. We're using it in many projects since a long time, that's why we suggest to ADOPT it.
Benefits
- stores JSON documents
- search behavior can be completely fine-tuned through custom analyzers
- supports clustering and high performance
- supports nested aggregations
- can be embedded in JVM applications (though not officially supported)
Drawbacks
- importing all relevant data to the search index often ends up with a non-trivial amount of code; especially keeping the index up to date when the upstream changes.
Alternatives
- We are not using Apache Solr, as in our opinion, Elasticsearch has superseded solr in all regards.
- For smaller projects, we suggest to look into postgres fulltext indexing, as it is more lightweight