在 Elasticsearch 7.0 中,可以使用嵌套字段来创建子文档。

  1. 定义索引映射

首先,需要定义一个包含嵌套字段的索引映射,例如:

PUT my_index
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "comments": {
        "type": "nested",
        "properties": {
          "user": {
            "type": "text"
          },
          "comment": {
            "type": "text"
          }
        }
      }
    }
  }
}

上述映射定义了一个包含嵌套字段'comments'的索引,其中'comments'字段包含'user'和'comment'子字段。

  1. 创建子文档

接下来,可以使用父文档的ID来创建子文档。例如:

PUT my_index/_doc/1
{
  "title": "My blog post",
  "comments": [
    {
      "user": "John",
      "comment": "Great post!"
    },
    {
      "user": "Jane",
      "comment": "I disagree with your argument."
    }
  ]
}

上述请求使用ID为1的父文档创建了两个子文档,每个子文档都包含'user'和'comment'字段。

  1. 检索子文档

可以使用嵌套查询来检索父文档和子文档。例如:

GET my_index/_search
{
  "query": {
    "nested": {
      "path": "comments",
      "query": {
        "match": {
          "comments.comment": "great"
        }
      }
    }
  }
}

上述查询将返回包含'comments.comment'字段中包含'great'关键字的所有父文档和子文档。

Elasticsearch 7.0 创建子文档 - 嵌套字段指南

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

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