[[span-queries]]
== Span queries

Span queries are low-level positional queries which provide expert control
over the order and proximity of the specified terms. These are typically used
to implement very specific queries on legal documents or patents.

Span queries cannot be mixed with non-span queries (with the exception of the `span_multi` query).

The queries in this group are:

<<query-dsl-span-term-query,`span_term` query>>::

The equivalent of the <<query-dsl-term-query,`term` query>> but for use with
other span queries.

<<query-dsl-span-multi-term-query,`span_multi` query>>::

Wraps a <<query-dsl-term-query,`term`>>, <<query-dsl-range-query,`range`>>,
<<query-dsl-prefix-query,`prefix`>>, <<query-dsl-wildcard-query,`wildcard`>>,
<<query-dsl-regexp-query,`regexp`>>, or <<query-dsl-fuzzy-query,`fuzzy`>> query.

<<query-dsl-span-first-query,`span_first` query>>::

Accepts another span query whose matches must appear within the first N
positions of the field.

<<query-dsl-span-near-query,`span_near` query>>::

Accepts multiple span queries whose matches must be within the specified distance of each other, and possibly in the same order.

<<query-dsl-span-or-query,`span_or` query>>::

Combines multiple span queries -- returns documents which match any of the
specified queries.

<<query-dsl-span-not-query,`span_not` query>>::

Wraps another span query, and excludes any documents which match that query.

<<query-dsl-span-containing-query,`span_containing` query>>::

Accepts a list of span queries, but only returns those spans which also match a second span query.

<<query-dsl-span-within-query,`span_within` query>>::

The result from a single span query is returned as long is its span falls
within the spans returned by a list of other span queries.

<<query-dsl-span-field-masking-query,`field_masking_span` query>>::

Allows queries like `span-near` or `span-or` across different fields.

include::span-term-query.asciidoc[]

include::span-multi-term-query.asciidoc[]

include::span-first-query.asciidoc[]

include::span-near-query.asciidoc[]

include::span-or-query.asciidoc[]

include::span-not-query.asciidoc[]

include::span-containing-query.asciidoc[]

include::span-within-query.asciidoc[]

include::span-field-masking-query.asciidoc[]