Skip to content

Build a Better Search Experience #10789

@Bargs

Description

@Bargs

Motivation

Kibana currently provides four different search mechanisms with overlapping responsibilities:

  1. Lucene query syntax in the query bar
  2. Query DSL in the query bar
  3. Filters created via the UI (which could include custom query DSL if edited)
  4. Console

Exposing the lucene query syntax and the query DSL to users creates a few problems. Since we don't control the query syntax we can't implement features that would require introspection into a user's query. This includes things like:

  1. Safe and seamless migrations of saved searches when ES search APIs change
  2. Typeahead/autocomplete in the query bar
  3. Dynamic help text

We could solve these problems by building a model in Kibana to represent raw Elasticsearch queries, but there are other advantages to building our own query language:

  1. We can support query types that are available in the ES query DSL that are not supported by the lucene query syntax
  2. We can implement functionality that is beyond the scope of the lucene query syntax, e.g. support for aggregations and visualizations in the query language
  3. We can provide finer grain controls for admins to restrict access to expensive queries, e.g. leading wildcards or regexes
  4. We can add support for scripted fields to the language
  5. We can unify the query bar and the filter bar, eliminating confusion about when to use one or the other

How

This is a meta ticket that we'll break down into smaller tasks. At a high level, here's what we're thinking:

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions