在Elasticsearch中,我们可以使用嵌套文档和子文档来组织和存储数据。下面是如何创建子文档和嵌套文档的步骤:

  1. 创建一个主文档,其中包含一个或多个字段。
  2. 在主文档中创建一个嵌套字段或子文档字段。
  3. 在嵌套字段或子文档字段中添加一个或多个字段。

以下是一个示例,展示如何创建一个具有嵌套字段的文档:

PUT my_index/_doc/1
{
  "title": "My Book",
  "author": {
    "first_name": "John",
    "last_name": "Doe"
  },
  "publisher": {
    "name": "My Publisher",
    "address": {
      "street": "123 Main St",
      "city": "Anytown",
      "state": "CA",
      "zip": "12345"
    }
  }
}

在上面的示例中,authorpublisher字段都是嵌套字段,它们包含了子字段。addresspublisher字段的子字段。

要查询嵌套或子文档,可以使用嵌套查询或has_child查询。例如,要查找所有具有特定地址的出版商,可以使用以下查询:

GET my_index/_search
{
  "query": {
    "nested": {
      "path": "publisher",
      "query": {
        "bool": {
          "must": [
            { "match": { "publisher.name": "My Publisher" }},
            { "match": { "publisher.address.city": "Anytown" }}
          ]
        }
      }
    }
  }
}

在上面的查询中,我们使用了嵌套查询来查找所有具有特定地址的出版商。我们指定了嵌套字段的路径,并使用布尔查询来匹配出版商的名称和地址的城市。

总之,使用子文档和嵌套文档可以组织和存储复杂的数据结构,并使查询更加灵活和强大

es70 如何创建子文档和嵌套文档

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

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