sandbox/plugins/dsl-query-executor/README.md
A front-end sandbox plugin to the analytics engine that intercepts _search requests, converts DSL queries into Calcite RelNode logical plans, and executes them through the analytics engine's query pipeline.
_search request
→ SearchActionFilter (intercepts SearchAction)
→ TransportDslExecuteAction (resolves index, orchestrates pipeline)
→ SearchSourceConverter (DSL → Calcite RelNode)
→ DslQueryPlanExecutor (delegates to analytics engine)
→ SearchResponseBuilder (builds SearchResponse)
analytics-engine — provides QueryPlanExecutor and EngineContext via Guice (declared as extendedPlugins)analytics-framework — provides Calcite and shared SPI interfaces| DSL Query | Calcite Representation |
|---|---|
term | =($field, value) — equality filter |
match_all | Skipped (boolean literal TRUE) |
exists | IS NOT NULL($field) — field existence check (boost not supported) |
./gradlew run -PinstalledPlugins="['analytics-engine','dsl-query-executor']"
# Unit tests
./gradlew :sandbox:plugins:dsl-query-executor:test
# Integration tests
./gradlew :sandbox:plugins:dsl-query-executor:internalClusterTest