[Search] Elastic Search Engine support
See original GitHub issueWhat / Why
We provide easy, no/low-config support for search in Backstage using an in-memory search engine backed by Lunr. Given a sufficiently large set of Catalog entities, or a multi-pod deployment of Backstage, this approach will not be adequate.
To support these production use-cases, we’d like to add support for new elasticsearch engine.
Scope / UAT Target
- Setup
- As an app integrator, I should be able to configure connection details to an instance of ElasticSearch in
app-config.yaml
and instantiate anElasticSearchEngine
in my backend using that configuration.
- As an app integrator, I should be able to configure connection details to an instance of ElasticSearch in
- Querying
- As an app integrator, I should not have to specify how a
SearchQuery
(and its term, filters, types/indices, pagination) is translated into ElasticSearch’s query language. - As an app integrator, it should be possible to provide custom query translation logic.
- As an app integrator, I should not have to specify how a
- Indexing
- As a user of Backstage Search, valid search results should return for an index both during and after the indexing process completes.
- As an app integrator, I should not have to worry about runaway disk usage in Elastic as a result of duplicate indices and/or errors during the index process.
Implementation Notes
- Consider using a popular ElasticSearch query builder like elastic-builder in the translator.
- Consider creating new indices each time
SearchEngine::index
is called, using aliases to flip between “old” and “current” indices for a given type/index, then deleting the old version (e.g. creatingreal-[indexType]-[timestamp]
, pointingsearch-[indexType]
at the most recently created version, and deletingreal-[indexType]-[oldTimestamp]
)
Issue Analytics
- State:
- Created 3 years ago
- Comments:7 (5 by maintainers)
Top Results From Across the Web
Elasticsearch: The Official Distributed Search & Analytics Engine
Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. As the heart of the...
Read more >Simple Search Engine with Elastic Search
Elasticsearch is a RESTful distributed search engine. It is Java-based and can search and index document files in diverse formats. Kibana is an ......
Read more >Elasticsearch: What it is, How it works, and what it's used for -
When people ask, “what is Elasticsearch?”, some may answer that it's “an index”, “a search engine”, an “analytics database”, “a big data solution”, ......
Read more >What is Elasticsearch: Tutorial for Beginners | Logz.io
Initially released in 2010, Elasticsearch (sometimes dubbed ES) is a modern search and analytics engine which is based on Apache Lucene.
Read more >What is Elasticsearch? - Elasticsearch - AWS - Amazon AWS
Elasticsearch is a distributed search and analytics engine built on Apache Lucene. Since its release in 2010, Elasticsearch has quickly become the most ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@iamEAP yes, lets do a session on that end of sprint to provide more details to this issue!
Closing this out as a result of #6569! Thanks again Jussi.