96 lines
2.5 KiB
Markdown
96 lines
2.5 KiB
Markdown
|
---
|
||
|
navigation_title: "Parent ID"
|
||
|
mapped_pages:
|
||
|
- https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-parent-id-query.html
|
||
|
---
|
||
|
|
||
|
# Parent ID query [query-dsl-parent-id-query]
|
||
|
|
||
|
|
||
|
Returns child documents [joined](/reference/elasticsearch/mapping-reference/parent-join.md) to a specific parent document. You can use a [join](/reference/elasticsearch/mapping-reference/parent-join.md) field mapping to create parent-child relationships between documents in the same index.
|
||
|
|
||
|
## Example request [parent-id-query-ex-request]
|
||
|
|
||
|
### Index setup [parent-id-index-setup]
|
||
|
|
||
|
To use the `parent_id` query, your index must include a [join](/reference/elasticsearch/mapping-reference/parent-join.md) field mapping. To see how you can set up an index for the `parent_id` query, try the following example.
|
||
|
|
||
|
1. Create an index with a [join](/reference/elasticsearch/mapping-reference/parent-join.md) field mapping.
|
||
|
|
||
|
```console
|
||
|
PUT /my-index-000001
|
||
|
{
|
||
|
"mappings": {
|
||
|
"properties": {
|
||
|
"my-join-field": {
|
||
|
"type": "join",
|
||
|
"relations": {
|
||
|
"my-parent": "my-child"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
2. Index a parent document with an ID of `1`.
|
||
|
|
||
|
```console
|
||
|
PUT /my-index-000001/_doc/1?refresh
|
||
|
{
|
||
|
"text": "This is a parent document.",
|
||
|
"my-join-field": "my-parent"
|
||
|
}
|
||
|
```
|
||
|
|
||
|
3. Index a child document of the parent document.
|
||
|
|
||
|
```console
|
||
|
PUT /my-index-000001/_doc/2?routing=1&refresh
|
||
|
{
|
||
|
"text": "This is a child document.",
|
||
|
"my-join-field": {
|
||
|
"name": "my-child",
|
||
|
"parent": "1"
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
### Example query [parent-id-query-ex-query]
|
||
|
|
||
|
The following search returns child documents for a parent document with an ID of `1`.
|
||
|
|
||
|
```console
|
||
|
GET /my-index-000001/_search
|
||
|
{
|
||
|
"query": {
|
||
|
"parent_id": {
|
||
|
"type": "my-child",
|
||
|
"id": "1"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
## Top-level parameters for `parent_id` [parent-id-top-level-params]
|
||
|
|
||
|
`type`
|
||
|
: (Required, string) Name of the child relationship mapped for the [join](/reference/elasticsearch/mapping-reference/parent-join.md) field.
|
||
|
|
||
|
`id`
|
||
|
: (Required, string) ID of the parent document. The query will return child documents of this parent document.
|
||
|
|
||
|
`ignore_unmapped`
|
||
|
: (Optional, Boolean) Indicates whether to ignore an unmapped `type` and not return any documents instead of an error. Defaults to `false`.
|
||
|
|
||
|
If `false`, {{es}} returns an error if the `type` is unmapped.
|
||
|
|
||
|
You can use this parameter to query multiple indices that may not contain the `type`.
|
||
|
|
||
|
|
||
|
|