Link Search Menu Expand Document Documentation Menu

Span near 查询

span_near 查询匹配彼此接近的跨度。您可以指定跨度之间的距离以及它们是否需要以特定顺序出现。

例如,您可以使用 span_near 查询来

  • 查找彼此在一定距离内出现的词条。
  • 匹配单词以特定顺序出现的短语。
  • 查找文本中彼此接近的相关概念。

示例

要尝试本节中的示例,请完成设置步骤

以下查询搜索“sleeve”和“long”以任意顺序相邻出现的任何形式

GET /clothing/_search
{
  "query": {
    "span_near": {
      "clauses": [
        {
          "span_term": {
            "description.stemmed": "sleev"
          }
        },
        {
          "span_term": {
            "description.stemmed": "long"
          }
        }
      ],
      "slop": 1,
      "in_order": false
    }
  }
}

该查询匹配文档 1(“Long-sleeved…”)和文档 2(“…long fluttered sleeves…”)。在文档 1 中,单词彼此相邻;在文档 2 中,它们在指定的间隙距离 1 之内(它们之间有 1 个单词)。

响应
{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 2,
      "relation": "eq"
    },
    "max_score": 0.36496973,
    "hits": [
      {
        "_index": "clothing",
        "_id": "1",
        "_score": 0.36496973,
        "_source": {
          "description": "Long-sleeved dress shirt with a formal collar and button cuffs. "
        }
      },
      {
        "_index": "clothing",
        "_id": "4",
        "_score": 0.25312424,
        "_source": {
          "description": "A set of two midi silk shirt dresses with long fluttered sleeves in black. "
        }
      }
    ]
  }
}

参数

下表列出了 span_near 查询支持的所有顶级参数。

参数 数据类型 描述
clauses 一个跨度查询数组,用于定义要匹配的词条或短语。所有指定的词条都必须出现在定义的间隙距离内。必填。  
slop 整数 跨度之间不匹配位置的最大数量。必填。
in_order 布尔型 跨度是否需要与 clauses 数组中的顺序相同。可选。默认为 false
剩余 350 字符

有问题?

想贡献?