Span 多词查询
编辑Span 多词查询编辑
span_multi
查询允许您将 多词查询
(通配符、模糊、前缀、范围或正则表达式查询之一)包装为 span 查询
,以便可以嵌套它。例如:
response = client.search( body: { query: { span_multi: { match: { prefix: { 'user.id' => { value: 'ki' } } } } } } ) puts response
GET /_search { "query": { "span_multi": { "match": { "prefix": { "user.id": { "value": "ki" } } } } } }
也可以将提升与查询相关联
response = client.search( body: { query: { span_multi: { match: { prefix: { 'user.id' => { value: 'ki', boost: 1.08 } } } } } } ) puts response
GET /_search { "query": { "span_multi": { "match": { "prefix": { "user.id": { "value": "ki", "boost": 1.08 } } } } } }
如果匹配查询的词条数量超过布尔查询限制(默认为 4096),则 span_multi
查询将遇到“命中太多子句”错误。为避免无限制扩展,您可以将多词查询的 rewrite 方法 设置为 top_terms_*
重写。或者,如果您仅在 prefix
查询上使用 span_multi
,则可以激活 text
字段的 index_prefixes
字段选项。这会将该字段上的任何前缀查询重写为与索引前缀匹配的单个词条查询。