原英文版地址: 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 重叠。
相当于设置了 |