The Discover page provides a Kibana Discover-like search and analysis experience, optimized for high-performance log analysis.
Key capabilities:

The Discover page consists of four core areas:
Configures the query scope and search statement. Capabilities include:
A histogram showing the time-based distribution of query results. Capabilities include:
Shows detailed records of query results with contextual exploration. Capabilities include:
trace_id is present, click to view the trace detailsShows all fields of the current table, with field-level exploration.
Capabilities include:
_source (a concatenation of all fields) is shownIn the query input area, use the dropdown menus to select data source, database, table, time field, and time range. The defaults for data source, database, and table can be changed on the configuration page; the default time field is the first DATETIME or DATE column in the table.

The search input box supports both SQL and Lucene syntax — Lucene is internally translated into SQL WHERE conditions. The mapping between supported Lucene syntax, Kibana, and SQL is shown below.
| Feature | Doris App Lucene syntax | Kibana | SQL WHERE | Notes |
|---|---|---|---|---|
| Single-field keyword match | service_name:kafka | Same | service_name MATCH ‘kafka’ | Exact field match, rewritten to service_name MATCH_ANY ‘kafka’ |
| Cross-field keyword match | error | Same | (service_name MATCH ‘error’) OR (scope_name MATCH ‘error’) | Full-text match across all inverted-index fields, auto-rewritten as multi-field MATCH_ANY |
| Single-field phrase match | service_name:“kafka logs” | Same | service_name MATCH_PHRASE ‘kafka logs’ | Field-level phrase match |
| Cross-field phrase match | “kafka logs” | Same | service_name MATCH_PHRASE ‘kafka logs’) | Exact phrase match, rewritten to MATCH_PHRASE |
| Wildcard | kaf* | Same | ((service_name MATCH_PHRASE_PREFIX ‘kaf’) OR (scope_name MATCH_PHRASE_PREFIX ‘kaf’)) | Prefix/suffix wildcard, rewritten to MATCH_PHRASE_PREFIX |
| Numeric / time range | duration:[100 TO 500] | Same | duration BETWEEN 100 AND 500 | Translated to SQL BETWEEN |
| Unbounded range | duration:>500 | Same | duration > ‘500’ | Translated to SQL comparison |
| Open / closed range | {100 TO 200} | Same | Curly braces denote an open interval | |
| AND combination | service_name:kafka AND status:failed | Same | (service_name MATCH ‘kafka’) AND (status MATCH ‘failed’) | Logical AND |
| OR combination | error OR warning | Same | Logical OR | |
| NOT combination | NOT kafka or -kafka | Same | NOT (service_name MATCH ‘kafka’) | Logical NOT |
| Grouping | (service_name:kafka OR service_name:zookeeper) AND status:failed | Same | ((service_name MATCH ‘kafka’) OR (service_name MATCH ‘zookeeper’)) AND (status MATCH ‘failed’) | Supports complex logical combinations |
Key points of the Lucene syntax:
field_name:match_condition.field_name: matches a single field against match_condition. Without field_name:, a bare match_condition matches if any field matches (an OR across fields).match_condition has three forms:* denotes a wildcard.match_condition has three forms:>, < denote range, similar to SQL.Key points of the SQL syntax:
MATCH and MATCH_ANY correspond to Lucene keyword match — any one of the keywords matches (OR relation).MATCH_ALL is also keyword match, but every keyword must match (AND relation).MATCH_PHRASE corresponds to Lucene phrase match — all words in the same order.=, >, <, BETWEEN.As shown below, the area inside the red box is the time-trend data area. It is meant for quickly seeing the count and trend of matching data over time. Several interactions are available:
Auto, scaled to the overall time range. You can also pick a different granularity such as second, minute, or hour from the dropdown.
As shown below, the area inside the red box is the detail data area, which displays the records matching your query conditions.
_source, where _source is a virtual concatenation of all fields displayed as key: value pairs with keys highlighted for readability. You can customize which fields are displayed on the right by clicking “+” next to a field name in the left-side field browser. Multiple fields can be added, and you can remove them by clicking “x” on the right; when all fields are removed it falls back to the default _source.
severity_text=INFO.

trace_id field, it is recognized as a related trace. The value becomes a clickable link; clicking it opens a trace waterfall drawer for log-to-trace correlation.
The field browser on the left lets you inspect the fields of the current table and analyze their value distribution.
