# В чем разница между nested и object?

**URL:** <https://discuss.elastic.co/t/nested-object/196942>\
**Category:** Вопросы на русском языке\
**Created:** [August 27, 2019, 11:47am UTC](https://discuss.elastic.co/t/nested-object/196942 "2019-08-27T11:47:16Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![KaiyrbekSanzhar](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaiyrbeksanzhar/32/53087_2.png) [@KaiyrbekSanzhar](https://discuss.elastic.co/u/KaiyrbekSanzhar)\
**Post date:** [August 27, 2019, 11:47am UTC](https://discuss.elastic.co/t/nested-object/196942/1 "2019-08-27T11:47:16Z")

</div>

Можете мне помощь в коде у меня нет результат!!  
всегда не может найти вложенный объект и можете объяснить разница object type и nested type

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [August 27, 2019, 6:18pm UTC](https://discuss.elastic.co/t/nested-object/196942/2 "2019-08-27T18:18:48Z")

</div>

Тип object "рассплющивает" структуру при индексации и поэтому все внутриние объекты сливаются в один, nested object индексирует объекты как скрытые записи, что позволяет их искать по отдельности. Попробуйте запустить следующий пример и посмотреть, что происходит. Если мы используем object и первый и второй поиск вернет нам первую запись:

```auto
DELETE test

PUT test
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "author": {
        "type": "object",
        "properties": {
          "first": {
            "type": "text"
          },
          "last": {
            "type": "text"
          }
        }
      }
    }
  }
}

PUT test/_doc/1
{
  "title": "В чем разница между nested и object?",
  "author": [{
    "first": "Sanzhar",
    "last": "Kaiyrbek"
  }, {
    "first": "Igor",
    "last": "Motov"
  } ]
}

POST test/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "author.first": "Sanzhar"
          }
        },
        {
          "match": {
            "author.last": "Kaiyrbek"
          }
        }
      ]
    }
  }
}

POST test/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "author.first": "Sanzhar"
          }
        },
        {
          "match": {
            "author.last": "Motov"
          }
        }
      ]
    }
  }
}

```

А если мы воспользуемся nested (с соответствующим запросом nested), то второй запрос нам ничего не вернет, поскольку он ищет nested объекты по отдельности и у нас нет автора и именем "Sanzhar Motov"

```auto
DELETE test

PUT test
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "author": {
        "type": "nested",
        "properties": {
          "first": {
            "type": "text"
          },
          "last": {
            "type": "text"
          }
        }
      }
    }
  }
}

PUT test/_doc/1
{
  "title": "В чем разница между nested и object?",
  "author": [{
    "first": "Sanzhar",
    "last": "Kaiyrbek"
  }, {
    "first": "Igor",
    "last": "Motov"
  } ]
}

POST test/_search
{
  "query": {
    "nested": {
      "path": "author",
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "author.first": "Sanzhar"
              }
            },
            {
              "match": {
                "author.last": "Kaiyrbek"
              }
            }
          ]
        }
      }
    }
  }
}

POST test/_search
{
  "query": {
    "nested": {
      "path": "author",
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "author.first": "Sanzhar"
              }
            },
            {
              "match": {
                "author.last": "Motov"
              }
            }
          ]
        }
      }
    }
  }
}

```

---

<div class="post-metadata">

**Author:** ![KaiyrbekSanzhar](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaiyrbeksanzhar/32/53087_2.png) [@KaiyrbekSanzhar](https://discuss.elastic.co/u/KaiyrbekSanzhar)\
**Post date:** [August 28, 2019, 7:35am UTC](https://discuss.elastic.co/t/nested-object/196942/3 "2019-08-28T07:35:47Z")

</div>

![1](https://us1.discourse-cdn.com/elastic/original/3X/6/4/64f9e53f4e9ef9f50ed0e98aa611f73a81cc3f22.png)  
 ![2](https://us1.discourse-cdn.com/elastic/original/3X/1/c/1c289a33e69353c4f0faaf7ddac137900ec306f9.png)

вот снимок можете сделать мне агрегацию Company =\> Krp=\>Histories=\>Value  
У меня результат вообще не приходит

Но спасибо за пояснение объекта и nested

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [August 28, 2019, 2:08pm UTC](https://discuss.elastic.co/t/nested-object/196942/4 "2019-08-28T14:08:17Z")

</div>

Я не могу сделать Вам агрегацию, потому что я не знаю какая агрегация вам нужна и каким образом Ваши данные были проиндексированы. Я могу попробовать помочь разобраться, почему Ваш запрос не возвращает нужные результаты.

---

<div class="post-metadata">

**Author:** ![KaiyrbekSanzhar](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kaiyrbeksanzhar/32/53087_2.png) [@KaiyrbekSanzhar](https://discuss.elastic.co/u/KaiyrbekSanzhar)\
**Post date:** [August 29, 2019, 9:20am UTC](https://discuss.elastic.co/t/nested-object/196942/5 "2019-08-29T09:20:58Z")

</div>

спасибо за такой быстрый ответ,как я смогу проиндексировать свой данные в ElasticSearch. За ранее спасибо за ответ

---

<div class="post-metadata">

**Author:** ![pablissimo77](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pablissimo77/32/108804_2.png) [@pablissimo77](https://discuss.elastic.co/u/pablissimo77)\
**Post date:** [August 29, 2019, 10:53am UTC](https://discuss.elastic.co/t/nested-object/196942/6 "2019-08-29T10:53:05Z")

</div>

В документации достаточно подробно описано, как это можно сделать: [https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index.html)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [September 26, 2019, 10:53am UTC](https://discuss.elastic.co/t/nested-object/196942/7 "2019-09-26T10:53:08Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
