Span Not 查询

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.4/query-dsl-span-not-query.html

译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=10029284

贡献者 : 片刻 ApacheCN Apache中文网

删除与另一个span查询重叠的匹配项。跨度不查询映射到Lucene SpanNotQuery。这是一个例子:

  1. GET /_search
  2. {
  3. "query": {
  4. "span_not" : {
  5. "include" : {
  6. "span_term" : { "field1" : "hoya" }
  7. },
  8. "exclude" : {
  9. "span_near" : {
  10. "clauses" : [
  11. { "span_term" : { "field1" : "la" } },
  12. { "span_term" : { "field1" : "hoya" } }
  13. ],
  14. "slop" : 0,
  15. "in_order" : true
  16. }
  17. }
  18. }
  19. }
  20. }

include和exclude子句可以是任何跨类型查询。 include子句是对其匹配进行过滤的span查询,而exclude子句是其匹配不能与返回的匹配的span查询。

在上述示例中,除了具有前述之外的所有文档,除了具有术语hoya的文档之外,都将被过滤。

其他顶级选项:

| pre | 如果在包含范围之前设置标记的数量不能与排除范围重叠。 | | post | 如果在包含范围之后设置标记的数量不能与排除范围重叠。 | | dist | 如果设置包含范围内的令牌数量不能与排除范围重叠。相当于前置和后置的设置。 |