DSL Compatibility Matrix
Compatibility of every Turing ES DSL Query feature across the three supported search engine backends.
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 | 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 | — |
date_histogram | N | — | — |
histogram | N | — | — |
filter | N | T | T |
filters | N | T | T |
significant_terms | N | T | T |
rare_terms | N | P | T |
nested | N | — | — |
reverse_nested | N | — | — |
auto_date_histogram | N | — | — |
multi_terms | N | — | — |
composite | N | — | — |
sampler | N | — | — |
diversified_sampler | N | — | — |
adjacency_matrix | N | — | — |
geo_distance | N | — | — |
variable_width_histogram | N | — | — |
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 | — | — |
top_metrics | N | — | — |
median_absolute_deviation | N | — | — |
boxplot | N | — | — |
string_stats | N | — | — |
matrix_stats | N | — | — |
t_test | N | — | — |
rate | N | — | — |
scripted_metric | N | — | — |
geo_bounds | N | — | — |
geo_centroid | N | — | — |
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 | — | — |
collapse | N | T | — |
suggest | N | P | — |
rescore | N | P | — |
timeout | N | T | — |
explain | N | T | — |
script_fields | N | — | — |
indices_boost | N | — | — |
track_total_hits | N | T | T |
stored_fields | N | T | — |
scroll | N | — | — |
profile | N | — | — |
pit | N | — | — |
docvalue_fields | N | — | — |
version | N | — | — |
seq_no_primary_term | N | — | — |
preference | N | — | — |
routing | N | — | — |
terminate_after | N | — | — |
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 | — | — |
hits.fields | N | — | — |
hits._version | N | — | — |
hits._seq_no | N | — | — |
hits.sort | N | — | — |
aggregations | N | T | T |
suggest | N | — | — |
_scroll_id | N | — | — |
profile | N | — | — |
_shards | N | — | — |
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% |
Recommendation
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 |