包装器允许span查询通过欺骗他们的搜索字段来参与复合单字段跨度查询。跨域字段屏蔽查询映射到Lucene的SpanFieldMaskingQuery
这可以用来支持像span-near
或 span-or
不同字段的查询,这通常不被允许。
当使用多个分析器对同一内容进行索引时,跨域字段屏蔽查询与多字段非常重要。例如,我们可以使用标准分析器对一个字段进行索引,该分析器将文本分解成单词,再次用英文分析器将单词写入其根形式。
例:
GET /_search
{
"query": {
"span_near": {
"clauses": [
{
"span_term": {
"text": "quick brown"
}
},
{
"field_masking_span": {
"query": {
"span_term": {
"text.stems": "fox"
}
},
"field": "text"
}
}
],
"slop": 5,
"in_order": false
}
}
}
注意:作为跨域掩码查询返回掩蔽字段,使用提供的字段名称的规范进行评分。这可能会导致意想不到的得分行为。