# Dec 11th, 2017: \[PT-BR\]\[Elasticsearch\] É preciso indexar um documento pai antes do filho?

**URL:** <https://discuss.elastic.co/t/dec-11th-2017-pt-br-elasticsearch-e-preciso-indexar-um-documento-pai-antes-do-filho/109287>\
**Category:** Advent Calendar\
**Created:** [December 11, 2017, 12:00am UTC](https://discuss.elastic.co/t/dec-11th-2017-pt-br-elasticsearch-e-preciso-indexar-um-documento-pai-antes-do-filho/109287 "2017-12-11T00:00:23Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![thiago](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/thiago/32/32096_2.png) [@thiago](https://discuss.elastic.co/u/thiago)\
**Post date:** [December 11, 2017, 12:00am UTC](https://discuss.elastic.co/t/dec-11th-2017-pt-br-elasticsearch-e-preciso-indexar-um-documento-pai-antes-do-filho/109287/1 "2017-12-11T00:00:23Z")

</div>

Em um mapeamento Parent/Child, não é necessário que o documento pai tenha sido indexado primeiro para indexar o documento filho. Sendo assim é possível indexar o documento filho primeiro, antes do pai ser indexado. O único requisito é que, ao indexar o documento filho, é preciso saber o ID do documento pai de antemão.

Por exemplo, considerando um documento pai com ID `1` e documento filho com ID `2`, os seguintes comandos podem acontecer nesta exata ordem:

1. Crie o index

```http
PUT parent-child
{
 "mappings": {
  "doc": {
   "properties": {
    "name": { "type": "keyword" },
    "type": {
     "type": "join",
     "relations": {
      "parent": "child"
     }
    }
   }
  }
 }
}

```

1. Indexe primeiro o filho (com `routing` sendo o ID do pai - é preciso saber o ID do pai de antemão)

```http
PUT /parent-child/doc/2?routing=1
{
 "name": "thiago",
 "type": {
  "name": "child",
  "parent": 1
 }
}

```

1. Indexe o pai depois (usando o mesmo ID)

```http
PUT /parent-child/doc/1
{
 "type": "parent"
}

```

1. Verifique que o documento filho existe e que está corretamente associado ao pai procurando um documento pai com ID `1` and que tem um filho com `name: "thiago"`:

```http
GET /parent-child/_search
{
 "query": {
  "bool": {
   "must": [
    {
     "ids": {
      "type": "doc",
      "values": ["1"]
     }
    },
    {
     "has_child": {
      "type": "child",
      "query": {
       "term": { "name": "thiago" }
      }
     }
    }
   ]
  }
 }

```

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [August 23, 2018, 8:31am UTC](https://discuss.elastic.co/t/dec-11th-2017-pt-br-elasticsearch-e-preciso-indexar-um-documento-pai-antes-do-filho/109287/2 "2018-08-23T08:31:19Z")

</div>


