Elasticsearch 的 intervals 查询提供了一种有效的方式来匹配文本中的特定片段。以下是使用 intervals 查询的一些示例:

  1. 匹配特定的短语:
GET /index/_search
{
  "query": {
    "intervals": {
      "field": "content",
      "match": {
        "query": 'quick brown fox',
        "max_gaps": 0
      }
    }
  }
}

以上查询将匹配 "content" 字段中包含连续的 'quick brown fox' 短语的文档。

  1. 匹配具有特定顺序的短语:
GET /index/_search
{
  "query": {
    "intervals": {
      "field": "content",
      "all_of": [
        { "match": { "query": 'quick', "max_gaps": 1 } },
        { "match": { "query": 'brown', "max_gaps": 1 } },
        { "match": { "query": 'fox', "max_gaps": 1 } }
      ]
    }
  }
}

以上查询将匹配 "content" 字段中包含相邻的 'quick'、'brown' 和 'fox' 短语的文档,它们的顺序必须一致,且最多允许一个间隔。

  1. 匹配具有指定间隔的短语:
GET /index/_search
{
  "query": {
    "intervals": {
      "field": "content",
      "all_of": [
        { "match": { "query": 'quick', "max_gaps": 1 } },
        { "match": { "query": 'brown', "max_gaps": 2 } },
        { "match": { "query": 'fox', "max_gaps": 0 } }
      ]
    }
  }
}

以上查询将匹配 "content" 字段中包含相邻的 'quick'、'brown' 和 'fox' 短语的文档,它们的顺序必须一致,且 'quick' 和 'fox' 之间最多允许一个间隔,'brown' 之间最多允许两个间隔。

  1. 使用正则表达式匹配:
GET /index/_search
{
  "query": {
    "intervals": {
      "field": "content",
      "match": {
        "regex": '\b[a-z]{5}\b'
      }
    }
  }
}

以上查询将匹配 "content" 字段中包含恰好有 5 个小写字母的单词的文档。

这些示例只是 intervals 查询的一部分用法。intervals 查询还支持其他参数和操作符,可以根据具体需求进行调整和组合。

Elasticsearch Intervals 查询:用法示例与指南

原文地址: https://www.cveoy.top/t/topic/qDzx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录