부모 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예요.

더 알아보기 (Learn more)