Span not 查询
编辑Span not 查询编辑
移除与另一个 Span 查询重叠的匹配项,或者移除在另一个 Span 查询之前 x 个词元(由参数 pre
控制)或之后 y 个词元(由参数 post
控制)的匹配项。以下是一个示例:
response = client.search( body: { 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 } } } } } ) puts response
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 查询。
在上面的示例中,所有包含词条 hoya 的文档都会被过滤,但前面有 la 的文档除外。
其他顶级选项
|
如果设置,则 include Span 之前的词元数量不能与 exclude Span 重叠。默认为 0。 |
|
如果设置,则 include Span 之后的词元数量不能与 exclude Span 重叠。默认为 0。 |
|
如果设置,则 include Span 内的词元数量不能与 exclude Span 重叠。相当于同时设置 |