728x90
메타 필드는 메타 데이터를 저장하는 특수 목적의 필드로써, 이를 이용하면 검색 시 문서를 다양한 형태로 제어하는 것이 가능하다.
_index 메타 필드
_index 메타 필드는 해당 문서가 속한 인덱스의 이름을 담고 있으며 이를 이용해 검색된 문서의 인덱스 명과 해당 인덱스에 몇 개의 문서가 있는지 알 수 있다.
POST movie_search/_search
{
"size": 0,
"aggs": {
"indices": {
"terms": {
"field": "_index",
"size": 10
}
}
}
}
결과
... 생략
"buckets": [
{
"key": "movie_search",
"doc _count": 29507
}
]
- 조회 시, 인덱스 별 카운트 정보를 얻을 수 있다.
_type 메타 필드
_type 메타 필드는 해당 문서가 속한 매핑의 타입 정보를 담고 있다. 이를 이용해 해당 인덱스 내부에서 타입별로 몇 개의 문서가 있는지 확인할 수 있다.
POST movie_search/_search
{
"size": 0,
"aggs": {
"indices": {
"terms": {
"field": "_type",
"size": 10
}
}
}
}
결과
... 생략
"buckets": [
{
"key": "_doc",
"doc_count": 29507
}
]
- 타입별 카운트 정보를 얻을 수 있다.
_index 메타 필드
_id 메타 필드는 문서를 식별하는 유일한 키로, 한 인덱스에서 색인된 문서마다 서로 다른 키 값을 가진다.
POST movie_search/_search
{
"size": 0,
"aggs": {
"indices": {
"terms": {
"field": "_id",
"size": 10
}
}
}
}
결과
... 생략
"buckets": [
{
"key": "20173732",
"doc_count": 1
}
]
_uid 메타 필드
_uid 메타 필드는 특수한 목적의 식별키로, # 태그를 사용해 _type과 _id 값을 조합해 사용한다.(내부적으로만 사용되기 때문에 검색 시 조회되는 값은 아니다)
POST movie_search/_search
{
"size": 0,
"aggs": {
"indices": {
"terms": {
"field": "_uid",
"size": 10
}
}
}
}
결과
... 생략
"buckets": [
{
"key": "_doc#20173732",
"doc_count": 1
}
]
_Source 메타 필드
_source 메타 필드는 문서의 원본 데이터를 제공한다(내부에는 색인 시 전달된 원본 JSON 문서의 본문이 저장돼 있다)
POST /_reindex
{
"source": {
"index": "movie_search",
"query": {
"match": {
"movied": "20173732"
}
}
},
"dest": {
"index": "reindex_movie"
},
"script": {
"source": "ctx._source.prdtYear++"
}
}
- 일반적으로 원본 JSON 문서를 검색 결과로 표시할 때 사용한다.
- _reindex API나 스크립트를 사용해 해당 값을 계산할 때 해당 메타 필드를 활용할 수 있다.
_all 메타 필드
_all 메타 필드는 색인에 사용된 모든 필드의 정보를 가진 메타 필드로, 모든 필드의 내용이 하나의 텍스트로 합쳐져서 제공된다.
- 특정 필드가 아닌 문서 전체 필드에서 특정 키워드를 검색한다면, _all 메타 필드를 사용하면 된다.
- _all 메타 필드는 데이터 크기를 너무 많이 차지하는 문제로 인해 엘라스틱서치 6.0 이상부터는 폐기 되었다.
- 필드 복사가 필요할 경우 copy_to 파라미터를 사용해야 한다.
_routing 메타 필드
_routing 메타 필드는 특정 문서를 특정 샤드에 저장하기 위해 사용자가 지정하는 메타 필드이다.
Hash (_routing) & num_of_shards
- 기본적으로 색인 시, 해당 문서는 특정 수식에 따라 문서 id를 이용해 문서가 색인될 샤드를 결정하며, 별도 설정 없다면 문서는 샤드에 골고루 분산되어 저장된다.
- _routing 메타 필드를 사용하면 색인 시, 문서들을 동일한 라우팅 ID를 지정할 수 있다.
- 문서 ID를 사용하는 대신 파라미터로 입력한 _routing 값이 샤드를 결정하는 데 사용한다.
PUT movie_routing/_doc/1?routing=ko
{
"repGenreNim": "한국어",
"movieNm": "살아남은아이"
}
- _routing 값을 지정해서 문서를 색인한다.
- 검색할 때도 _routing 값을 지정해서 조회해야 한다.
728x90
'Elastic Search' 카테고리의 다른 글
| Ch03. 데이터 모델링 - 엘라스틱서치 분석기 (0) | 2025.09.13 |
|---|---|
| Ch03. 데이터 모델링 - 필드 데이터 타입 (0) | 2025.09.07 |
| Ch03. 데이터 모델링 - 매핑 API (0) | 2025.09.07 |
| Ch02. 엘라스틱서치 살펴보기 - 주요 API (0) | 2025.09.06 |
| Ch02. 엘라스틱서치 살펴보기 - 엘라스틱서치 구성하는 개념 (0) | 2025.09.02 |