field_masking_span 查询

包装器(wrapper),允许 span 查询通过谎报其搜索字段来参与复合单字段的 span 查询。 span 字段遮盖(masking)查询对应 Lucene 的 SpanFieldMaskingQuery

这可以用来支持 span-nearspan-or 跨不同字段的查询,而这通常是不允许的。

当使用多个分析器对相同的内容进行索引时,span 字段遮盖查询与多字段(multi-fields)结合使用是非常宝贵的。 例如,我们可以用 standard 分析器将文本分解成单词,再用 english 分析器将单词词干化成词根形式来索引字段。

示例:

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
    }
  }
}

注意:当 span 字段遮盖查询返回遮盖字段时,将使用提供的字段名的规范进行评分。 这可能会导致意外的评分行为。