Link Search Menu Expand Document Documentation Menu

Span 查询

您可以使用跨度查询来执行精确的位置搜索。跨度查询是低级、具体的查询,可以控制指定查询词的顺序和邻近度。它们主要用于搜索法律文件和专利。

跨度查询包括以下查询类型:

  • Span containing(包含跨度):返回包含其内部较小跨度的较大跨度。适用于在更广泛的上下文中查找特定词语或短语。与 span_within 查询相反。

  • Span field masking(跨度字段掩码):允许跨度查询通过将一个字段显示为另一个字段来跨不同字段工作。当使用不同分析器索引相同文本时,此功能特别有用。

  • Span first(首次跨度):匹配在字段开头指定位置数内出现的词语或短语。适用于查找文本开头的内容。

  • Span multi-term(多词元跨度):使多词元查询(如 prefixwildcardfuzzy)能够在跨度查询中工作。允许在跨度搜索中使用更灵活的匹配模式。

  • Span near(邻近跨度):查找彼此之间在指定距离内出现的词语或短语。您可以要求匹配项以特定顺序出现,并控制它们之间可以有多少个词语。

  • Span not(非跨度):排除与另一个跨度查询重叠的匹配项。适用于查找未出现在特定短语或上下文中的词语。

  • Span or(或跨度):匹配满足任何给定跨度查询的文档。使用 OR 逻辑组合多个跨度模式。

  • Span term(词元跨度):跨度查询的基本组成部分。匹配单个词元,同时保留位置信息以用于其他跨度查询。

  • Span within(内部跨度):返回由较大跨度包围的较小跨度。与 span_containing 查询相反。

设置

要尝试本节中的示例,请使用以下步骤配置示例索引。

步骤 1:创建索引

首先,为电子商务服装网站创建一个索引。description 字段使用默认的 standard 分析器,而 description.stemmed 子字段应用 english 分析器以启用词干提取。

PUT /clothing
{
  "mappings": {
    "properties": {
      "description": {
        "type": "text",
        "analyzer": "standard",
        "fields": {
          "stemmed": {
            "type": "text",
            "analyzer": "english"
          }
        }
      }
    }
  }
}

步骤 2:索引数据

将示例文档索引到索引中

POST /clothing/_doc/1
{
  "description": "Long-sleeved dress shirt with a formal collar and button cuffs. "
}

POST /clothing/_doc/2
{
  "description": "Beautiful long dress in red silk, perfect for formal events."
}

POST /clothing/_doc/3
{
  "description": "Short-sleeved shirt with a button-down collar, can be dressed up or down."
}

POST /clothing/_doc/4
{
  "description": "A set of two midi silk shirt dresses with long sleeves in black. "
}

剩余 350 字符

有问题?

想要贡献?