DSL Compatibility Matrix
This page is the support map for the DSL Query API: for every query type, aggregation, and option, it shows how faithfully each search engine backend (Elasticsearch, Solr, Lucene) implements it. Because Turing ES exposes one Elasticsearch-compatible syntax over three different engines, a feature that's native on one may be translated or only partially supported on another.
Reach for this table when you're choosing a backend for a site, or when a DSL query behaves differently than you expected across engines: the badge tells you whether that's a 1:1 mapping, a translation, or a best-effort approximation. Read it alongside the query examples on the DSL Query API page.
Legend
| Badge | Level | Description |
|---|---|---|
| N | Native | Direct 1:1 mapping to the engine API |
| T | Translated | Converted to equivalent engine syntax |
| P | Partial | Basic support with limitations |
| F | Fallback | Best-effort approximation |
| N/A | N/A | Not supported by the engine |
Queries (40 types)
Full-text Queries
| Query | ES | Solr | Lucene |
|---|---|---|---|
match | N | T | T |
multi_match | N | T | T |
match_phrase | N | T | T |
match_phrase_prefix | N | T | T |
match_bool_prefix | N | T | T |
combined_fields | N | T | T |
query_string | N | T | T |
simple_query_string | N | T | T |
match_all | N | T | T |
Term-level Queries
| Query | ES | Solr | Lucene |
|---|---|---|---|
term | N | T | T |
terms | N | T | T |
terms_set | N | F | F |
range | N | T | T |
exists | N | T | T |
prefix | N | T | T |
wildcard | N | T | T |
regexp | N | T | T |
fuzzy | N | T | T |
ids | N | T | T |
Compound Queries
| Query | ES | Solr | Lucene |
|---|---|---|---|
bool | N | T | T |
constant_score | N | T | T |
dis_max | N | T | T |
boosting | N | T | T |
function_score | N | P | P |
script_score | N | F | F |
pinned | N | T | T |
Nested & Join Queries
| Query | ES | Solr | Lucene |
|---|---|---|---|
nested | N | F | F |
has_child | N | F | F |
has_parent | N | F | F |
Geo Queries
| Query | ES | Solr | Lucene |
|---|---|---|---|
geo_distance | N | T | F |
geo_bounding_box | N | T | F |
geo_shape | N | F | F |
Vector Search
| Query | ES | Solr | Lucene |
|---|---|---|---|
knn | N | T | N |
Span Queries
| Query | ES | Solr | Lucene |
|---|---|---|---|
span_term | N | T | T |
span_near | N | T | T |
span_or | N | T | T |
span_not | N | T | T |
span_first | N | F | F |
Specialized Queries
| Query | ES | Solr | Lucene |
|---|---|---|---|
more_like_this | N | T | T |
intervals | N | T | T |
rank_feature | N | F | T |
distance_feature | N | F | F |
wrapper | N | F | F |
percolate | N | F | F |
Aggregations (35 types)
Bucket Aggregations
| Aggregation | ES | Solr | Lucene |
|---|---|---|---|
terms | N | T | T |
range | N | T | N/A |
date_histogram | N | N/A | N/A |
histogram | N | N/A | N/A |
filter | N | T | T |
filters | N | T | T |
significant_terms | N | T | T |
rare_terms | N | P | T |
nested | N | N/A | N/A |
reverse_nested | N | N/A | N/A |
auto_date_histogram | N | N/A | N/A |
multi_terms | N | N/A | N/A |
composite | N | N/A | N/A |
sampler | N | N/A | N/A |
diversified_sampler | N | N/A | N/A |
adjacency_matrix | N | N/A | N/A |
geo_distance | N | N/A | N/A |
variable_width_histogram | N | N/A | N/A |
Metric Aggregations
| Aggregation | ES | Solr | Lucene |
|---|---|---|---|
avg | N | T | T |
sum | N | T | T |
min | N | T | T |
max | N | T | T |
cardinality | N | T | T |
value_count | N | T | T |
stats | N | T | T |
extended_stats | N | T | T |
percentiles | N | T | T |
percentile_ranks | N | T | T |
top_hits | N | N/A | N/A |
top_metrics | N | N/A | N/A |
median_absolute_deviation | N | N/A | N/A |
boxplot | N | N/A | N/A |
string_stats | N | N/A | N/A |
matrix_stats | N | N/A | N/A |
t_test | N | N/A | N/A |
rate | N | N/A | N/A |
scripted_metric | N | N/A | N/A |
geo_bounds | N | N/A | N/A |
geo_centroid | N | N/A | N/A |
Request Features (29 fields)
| Feature | ES | Solr | Lucene |
|---|---|---|---|
from / size | N | T | T |
sort | N | T | T |
_source | N | T | T |
highlight | N | T | T |
aggs | N | T | T |
post_filter | N | T | T |
min_score | N | T | P |
search_after | N | N/A | N/A |
collapse | N | T | N/A |
suggest | N | P | N/A |
rescore | N | P | N/A |
timeout | N | T | N/A |
explain | N | T | N/A |
script_fields | N | N/A | N/A |
indices_boost | N | N/A | N/A |
track_total_hits | N | T | T |
stored_fields | N | T | N/A |
scroll | N | N/A | N/A |
profile | N | N/A | N/A |
pit | N | N/A | N/A |
docvalue_fields | N | N/A | N/A |
version | N | N/A | N/A |
seq_no_primary_term | N | N/A | N/A |
preference | N | N/A | N/A |
routing | N | N/A | N/A |
terminate_after | N | N/A | N/A |
Response Fields
| Field | ES | Solr | Lucene |
|---|---|---|---|
took | N | T | T |
timed_out | N | T | T |
hits.total | N | T | T |
hits.max_score | N | T | T |
hits._id | N | T | T |
hits._score | N | T | T |
hits._source | N | T | T |
hits.highlight | N | T | T |
hits._explanation | N | N/A | N/A |
hits.fields | N | N/A | N/A |
hits._version | N | N/A | N/A |
hits._seq_no | N | N/A | N/A |
hits.sort | N | N/A | N/A |
aggregations | N | T | T |
suggest | N | N/A | N/A |
_scroll_id | N | N/A | N/A |
profile | N | N/A | N/A |
_shards | N | N/A | N/A |
Coverage Summary
| Category | Total | ES | Solr | Lucene |
|---|---|---|---|---|
| Queries | 40 | N 100% | T 100% | T 100% |
| Aggregations | 35 | N 100% | T 49% | T 31% |
| Request Features | 29 | N 100% | T 41% | T 21% |
| Response Fields | 18 | N 100% | T 44% | T 44% |
For full DSL compatibility, use Elasticsearch as the search engine backend. Solr and Lucene provide excellent coverage for the most common queries and aggregations, with best-effort translations for advanced features.
Engine Selection Guide
| Use Case | Recommended |
|---|---|
| Full Elasticsearch DSL compatibility | N Elasticsearch |
| Production enterprise search with Solr infrastructure | T Solr |
| Embedded search without external dependencies | T Lucene |
| Vector / semantic search (knn) | N ES or N Lucene |
| Advanced aggregations (composite, nested, geo) | N Elasticsearch |
| Simple faceted search with metric aggs | T Solr or T Lucene |
Related Pages
- DSL Query API: the query syntax this matrix describes
- Search Engine: configure the Solr / Elasticsearch / Lucene backend
- REST API Reference: the simpler
/searchendpoint