Mirage
GUI for simplifying Elasticsearch Query DSL
Under Other
By appbaseio
GUI for simplifying Elasticsearch Query DSL
Under Other
By appbaseio
The Elasticsearch query DSL supports 100+ query APIs ranging from full-text search, numeric range filters, geolocation queries to nested and span queries.
Mirage is a modern, open-source web based query explorer for Elasticsearch.
It offers a blocks based GUI for composing Elasticsearch queries and comes with an on-the-fly transformer to show the corresponding JSON query API of Elasticsearch.
Add Conditions
allows adding additional clauses within the same query and Nested Query
allows adding a nested query clause.
Mirage works with any Elasticsearch 2.x, 5.x, 6.x and 7.x index currently. Below is the roadmap for query support.
✓ indicates queries already supported. indicates queries we would like to support and see contributions for.
indicates queries that can't be supported currently.
| Full-text Queries | Term Level Queries | Joining Queries | Geo Queries | Specialized Queries | Span Queries |
| :--------------------: |:---------------------:| :--------------:| :-------------------:|:-------------------:|:------------:|
| ✓ Match | ✓ Term | ✓ Nested | ✓ GeoDistance | MoreLikeThis | ✓ SpanTerm |
| ✓ Multi-match | ✓ Terms | ✓ HasChild | ✓ GeoBoundingBox | Template |
SpanMulti |
| ✓ Query String | ✓ Range | ✓ HasParent | ✓ GeoShape | Script | ✓ SpanFirst |
| ✓ Simple Query String | ✓ Exists | ✓ ParentId | ✓ GeoDistanceRange | | SpanNear |
| ✓ Common Terms | ✓ Missing | | ✓ GeoPolygon | | SpanOr |
| | ✓ Prefix | | ✓ GeoHashCell | | SpanNot |
| | ✓ Wildcard | | | | SpanContaining |
| | ✓ Regexp | | | | SpanWithin |
| | ✓ Fuzzy | | | |
| | ✓ Ids | | | |
| | Type | | | |
Besides broadening the query support, we would like to see Mirage support Elasticsearch v5.0.
sh
$ npm install
$ bower install
$ npm start
This will start a local webserver running on port 3030 serving mirage locally.
sh
$ npm test
will fire up the jasmine tests.
master
branch: Elasticsearch Pluginsh
$ npm run build_es_plugin
chrome-extension
branch: Chrome extensionsh
$ npm run build_chrome_extension
npm test
.Mirage is available as a hosted app and as a chrome extension.
or
Note:
We're working on bringing this back.
or
Every app in appbase.io has a query explorer view, which uses mirage.
or
Works with Elasticsearch versions 1.x, 2.x, 5.x, 6.x and 7.x.
sh
docker run -p 3030:3030 -d appbaseio/mirage
CORS settings: To make sure you enable CORS settings for your ElasticSearch instance, add the following lines in the ES configuration file.
http.port: 9200
http.cors.allow-origin: "/.*/"
http.cors.enabled: true
http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type, Content-Length, Authorization
http.cors.allow-credentials: true
[Deprecated] Works with Elasticsearch versions 1.x and 2.x. Site plugins have been disabled starting v5.0. We recommend running mirage with docker instead.
sh
plugin install appbaseio/mirage
Note:
Elasticsearch has a CORS header issue with v2.3.0, use v2.3.2 and above.
http.port: 9200
http.cors.allow-origin: "/.*/"
http.cors.enabled: true
http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type, Content-Length, Authorization
http.cors.allow-credentials: true
After installing the plugin, start the elasticsearch service and visit the following URL to access it.
http://127.0.0.1:9200/_plugin/mirage
Note:
If you use Elasticsearch from a different port, the URL to access and the http.cors.allow-origin value in the configuration file would change accordingly.
Mirage can be used along with ⊞ DejaVu to browse data and perform CRUD operations inside an Elasticsearch index.
Proudly built with