在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”关键字的所有父文档和子文档

es70 如何创建子文档

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

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