原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/query-dsl-span-not-query.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/query-dsl-span-not-query.html
本地英文版地址: ../en/query-dsl-span-not-query.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
span_not 查询edit
删除与另一个 span 查询重叠的匹配项,或者位于另一个 span 查询之前的 x 标记(由参数 pre
控制) 或 之后的 y 标记(由参数 post
控制) 内的匹配项。
span_not 查询对应 Lucene 的 SpanNotQuery
。这里有一个例子:
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 } } } } }
include
和 exclude
子句可以是任何 span 类型的查询。
include
子句是过滤匹配项的 span 查询,exclude
子句是匹配项不能与返回项重叠的 span 查询。
在上面的例子中,除了前面有la的文档之外,所有带有hoya的文档都被过滤了。
其他顶级选项有:
|
如果设置了,则包含 span 之前的词元数量不能与 exclude span 重叠。 默认值为 0。 |
|
如果设置了,则包含 span 后的词元数量不能与 exclude span 重叠。 默认值为 0。 |
|
如果设置了,包含 span 内的词元数量不能与 exclude span 重叠。
相当于设置了 |