OpenSearch/docs/reference/query-dsl/span-not-query.asciidoc

50 lines
1.7 KiB
Plaintext
Raw Normal View History

[[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. The span not
query maps to Lucene `SpanNotQuery`. 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.
2015-05-05 04:03:15 -04:00
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`.