- Mirage: Intro
- Features
- Roadmap
- Build Locally
- How to contribute
- Get Mirage
a. Hosted
b. Chrome Extension
c. Appbase.io
d. Run with Docker
e. Elasticsearch Plugin (deprecated)
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.
- Mirage's GUI building blocks offer a smart way to creating queries. It uses the index's Elasticsearch mappings and the selected field's datatype to show only the applicable queries in the dropdown.
- Mirage provides two ways to add compound query clauses,
Add Conditions
allows adding additional clauses within the same query andNested Query
allows adding a nested query clause.
- Queries can be saved for later reuse. They can also be captured and shared by copying the URL.
- See docs for any query from within the app.
Mirage works with an Elasticsearch 2.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.
$ npm install
$ bower install
$ npm start
This will start a local webserver running on port 3030 serving mirage locally.
$ npm test
will fire up the jasmine tests.
$ npm run build_es_plugin
$ npm run build_chrome_extension
- Find a query that can be supported from the roadmap.
- Fork the mirage repo and update in "dev" branch.
- Create the query files.
- Build locally and run
npm test
. - Submit a PR!
Mirage is available as a hosted app and as a chrome extension.
or
or
Every app in appbase.io has a query explorer view, which uses mirage.
or
Works with Elasticsearch versions 1.x, 2.x and 5.x.
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.
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.