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 query的各种用法举例

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

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