elasticsearch/docs/reference/query-dsl/span-not-query.asciidoc
Mayya Sharipova d6c53e03d2
Improve span queries documentation (#103490)
Improvement includes:
1. Remove reference to Lucene queries (this information is not necessary
for Elastic users, and can be outdated)
2. For `span_field_masking` include a node to use
"require_field_match" : false parameter for highlighters to work.

Closes #101804
2023-12-19 14:51:19 -05:00

49 lines
1.6 KiB
Text

[[query-dsl-span-not-query]]
=== Span not query
++++
<titleabbrev>Span not</titleabbrev>
++++
Removes matches which overlap with another span query or which are
within x tokens before (controlled by the parameter `pre`) or y tokens
after (controlled by the parameter `post`) another SpanQuery.
Here is an example:
[source,console]
--------------------------------------------------
GET /_search
{
"query": {
"span_not": {
"include": {
"span_term": { "field1": "hoya" }
},
"exclude": {
"span_near": {
"clauses": [
{ "span_term": { "field1": "la" } },
{ "span_term": { "field1": "hoya" } }
],
"slop": 0,
"in_order": true
}
}
}
}
}
--------------------------------------------------
The `include` and `exclude` clauses can be any span type query. The
`include` clause is the span query whose matches are filtered, and the
`exclude` clause is the span query whose matches must not overlap those
returned.
In the above example all documents with the term hoya are filtered except the ones that have 'la' preceding them.
Other top level options:
[horizontal]
`pre`:: If set the amount of tokens before the include span can't have overlap with the exclude span. Defaults to 0.
`post`:: If set the amount of tokens after the include span can't have overlap with the exclude span. Defaults to 0.
`dist`:: If set the amount of tokens from within the include span can't have overlap with the exclude span. Equivalent
of setting both `pre` and `post`.