부모 ID(parent_id) 쿼리
부모 ID(parent_id) 쿼리
parent_id 쿼리는 부모 문서의 ID가 지정된 ID인 자식 문서를 반환해요. 같은 인덱스 안의 문서들 사이에 부모/자식 관계를 맺으려면 조인(join) 필드 유형을 사용하면 됩니다.
출처: 문서
본문
예제 (Example)
parent_id 쿼리를 실행하려면 먼저 인덱스에 부모/자식 관계를 맺기 위한 조인 필드가 있어야 해요. 인덱스 매핑 요청은 다음과 같은 형식을 사용해요.
PUT /example_index
{
"mappings": {
"properties": {
"relationship_field": {
"type": "join",
"relations": {
"parent_doc": "child_doc"
}
}
}
}
}
이 예제에서는 먼저 has_child 쿼리 예제에서 설명한 대로 제품과 해당 브랜드를 나타내는 문서가 담긴 인덱스를 구성해 보겠어요.
특정 부모 문서의 자식 문서를 검색하려면 parent_id 쿼리를 사용해요. 다음 쿼리는 부모 문서의 ID가 1인 자식 문서(제품)를 반환해요.
GET testindex1/_search
{
"query": {
"parent_id": {
"type": "product",
"id": "1"
}
}
}
응답은 자식 제품을 반환해요.
{
"took": 57,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.87546873,
"hits": [
{
"_index": "testindex1",
"_id": "3",
"_score": 0.87546873,
"_routing": "1",
"_source": {
"name": "Mechanical watch",
"sales_count": 150,
"product_to_brand": {
"name": "product",
"parent": "1"
}
}
}
]
}
}
파라미터 (Parameters)
다음 표는 parent_id 쿼리가 지원하는 모든 최상위 파라미터를 나열해요.
- type (필수): 조인 필드 매핑에 정의된 자식 관계의 이름을 지정해요.
- id (필수): 부모 문서의 ID예요. 쿼리는 이 부모 문서와 연결된 자식 문서를 반환해요.
- ignore_unmapped (선택): 매핑되지 않은 type 필드를 무시하고 오류 대신 문서를 반환하지 않을지 나타내요. 일부 인덱스에 type 필드가 없을 수 있는 여러 인덱스를 쿼리할 때 이 파라미터를 제공할 수 있어요. 기본값은
false예요.