• Stars
    star
    2,202
  • Rank 20,952 (Top 0.5 %)
  • Language
    TypeScript
  • License
    Other
  • Created almost 9 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🎨 GUI for simplifying Elasticsearch Query DSL

Docker Pulls

Mirage: πŸ”Ž GUI for Elasticsearch Queries

  1. Mirage: Intro
  2. Features
  3. Roadmap
  4. Build Locally
  5. How to contribute
  6. Get Mirage
    a. Hosted
    b. Chrome Extension
    c. Appbase.io
    d. Run with Docker
    e. Elasticsearch Plugin (deprecated)

1. Mirage: Intro

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.

2-min Intro to Mirage

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.


2. Features

  • 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.

Watch Queries being built in realtime


  • Mirage provides two ways to add compound query clauses,
    • Add Conditions allows adding additional clauses within the same query and
    • Nested Query allows adding a nested query clause.

Intuitively layer complexity to your queries


  • Queries can be saved for later reuse. They can also be captured and shared by copying the URL.

Save queries for later reuse

  • See docs for any query from within the app.

Browse docs from within Mirage


3. Roadmap

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.


4. Build Locally

$ npm install
$ bower install
$ npm start

This will start a local webserver running on port 3030 serving mirage locally.

Tests

$ npm test

will fire up the jasmine tests.

master branch: Elasticsearch Plugin

$ npm run build_es_plugin

chrome-extension branch: Chrome extension

$ npm run build_chrome_extension

5. How to Contribute

  1. Find a query that can be supported from the roadmap.
  2. Fork the mirage repo and update in "dev" branch.
  3. Create the query files.
  4. Build locally and run npm test.
  5. Submit a PR!

6. Get Mirage

Mirage is available as a hosted app and as a chrome extension.

Use hosted app

or

Get the Chrome extension

Note: We're working on bringing this back.

or

appbase.io dashboard

Every app in appbase.io has a query explorer view, which uses mirage.

Mirage Gif

or

Run with docker

Works with Elasticsearch versions 1.x, 2.x, 5.x, 6.x and 7.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

Install as Elasticsearch Plugin

[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.


Proudly built with

More Repositories

1

dejavu

A Web UI for Elasticsearch and OpenSearch: Import, browse and edit data with rich filters and query views, create reference search UIs.
JavaScript
8,366
star
2

reactivesearch

Search UI components for React and Vue
JavaScript
4,899
star
3

reactivemaps

A data aware UI components library for building realtime maps
JavaScript
941
star
4

gem

πŸ’Ž GUI for Data Modeling with Elasticsearch
JavaScript
662
star
5

Docbase

Turn .md docs into beautiful sites
JavaScript
592
star
6

abc

Power of appbase.io via CLI, with nifty imports from your favorite data sources
Go
472
star
7

reactivesearch-api

API Gateway for Elasticsearch with declarative querying and out-of-the-box access controls
Go
190
star
8

searchbox

Lightweight and performance oriented search box UI component libraries for React, Vue, React Native, JS and Flutter
JavaScript
182
star
9

playground

A storybook playground for ReactiveMaps and ReactiveSearch
JavaScript
47
star
10

appbase-js

appbase.io search client library for JavaScript
JavaScript
41
star
11

Docs

ReactiveSearch Developer Hub
JavaScript
33
star
12

reactivecore

Core architecture of reactive UI libraries
JavaScript
33
star
13

dashboard

ReactiveSearch cloud dashboard
JavaScript
32
star
14

appbase-droid

Elasticsearch and appbase.io library for Android (and Java)
Java
24
star
15

appbase-swift

Swift Library for appbase.io and ElasticSearch
Swift
24
star
16

reactivebase

Data components for building reactive UIs
JavaScript
18
star
17

twitterclone

twitter clone built with appbase.io and AngularJS
JavaScript
16
star
18

designkit

Design kit for appbaseio ecosystem
JavaScript
14
star
19

esc

ESC: ElasticSearch Cookbook, with example recipes πŸ“˜
JavaScript
13
star
20

meetupblast

Find out what great meetups people are going to!
JavaScript
12
star
21

reactive-manual

Docs for ReactiveSearch (and Maps)
JavaScript
12
star
22

vue-reactivesearch

This project has been moved to https://github.com/appbaseio/reactivesearch/
JavaScript
11
star
23

reactivesearch-api-docker

HTML
9
star
24

heartbeat-frontend

Heartbeat: Transform REST API endpoints to streaming APIs
JavaScript
7
star
25

vue-playground

A storybook playground for Vue ReactiveSearch
Vue
7
star
26

batteries

Pluggable modules for mappings, search preview and analytics
JavaScript
7
star
27

go-appbase

An ElasticSearch + appbase.io client library (includes data streaming support) for Go
Go
6
star
28

reactivebase-native

Native data components for building reactive UIs
JavaScript
6
star
29

flutter-searchbox

SearchBox UI component library for flutter
Dart
6
star
30

appbase-redis

A realtime events-based document store
JavaScript
5
star
31

reactivesearch-realm-function

Crate for ReactiveSearch API which creates a Realm function based API gateway
TypeScript
5
star
32

docbase-manual

Manual for docbase
HTML
5
star
33

vue-searchbox

JavaScript
4
star
34

generator-docbase

Docbase generator
JavaScript
4
star
35

react-searchbox

JavaScript
3
star
36

reactive-maps-onboarding

JavaScript
3
star
37

searchbox-js

JavaScript
3
star
38

streaming-transporter

Shell
3
star
39

analytics.js

Universal analytics library for appbase.io / ElasticSearch
JavaScript
3
star
40

pipelines-action

GitHub Action to let users create pipelines from a repository directly
JavaScript
3
star
41

grunt-docbase

Grunt plugin to generate html files from your docbase project.
JavaScript
2
star
42

EScompanion

A companion installation app for Autopilot
Go
2
star
43

statuspage

HTML
2
star
44

android-searchbox

Android Search UI widget to build customizable mobile search layouts
Java
2
star
45

appbase.js-deprecate

JavaScript Wrapper for Appbase Rest API
JavaScript
2
star
46

statusp

Python
1
star
47

reactivesearch-shopify-plugin

Shopify Plugin for ReactiveSearch
JavaScript
1
star
48

faceted-search-template

JavaScript
1
star
49

oasis

Oasis
JavaScript
1
star
50

mitter

JavaScript
1
star
51

serverless-search

Dockerfile
1
star
52

appbase-hackathon-deprecate

1
star
53

geo-search-template

JavaScript
1
star
54

flutter-searchbox-typeahead-example

Dart
1
star
55

clients

An experiment in auto-generated REST clients.
1
star
56

pipelines-template

Template repo to get started with ReactiveSearch Pipelines Action
JavaScript
1
star
57

customization-with-reactivesearch

JavaScript
1
star
58

appbaseio-heroku

Dockerfile
1
star
59

reactivesearch-api-k8s

1
star
60

searchbook

Search onboarding
JavaScript
1
star