(ElasticSearch) _id와 _routing의 이해
기본적으로 문서를 색인하기 위해서는 문서의 unique id가 필요하다. 엘라스틱 서치에서는 _id라는 필드를 이용해서 문서의 Uniqueness를 보장해 주고 있습니다. 이 값은 hash알고리즘을 이용해서 색인할 shard id를 생성합니다. 또한, _id값은 GET API를 이용해서 문서를 직접 access할 수 있게 해줍니다. $curl -XGET http://localhost:9200/INDEX/TYPE/_id _routing도 _id와 동일하게 해당 값을 이용해서 shard id를 구한다는 점에서 동일하며 mapping설정도 동일 합니다. 차이점이 있다면 _id는 문서 자체에 대한 routing이고, _routing는 문서 집단 또는 그룹에 대한 routing입니다. 또한 검색입장에서는 _id는 문서 하나를 검색해서 가져오지만, _routing은 지정된 key값에 의한 shard들을 대상으로 검색을 하게 됩니다. * _id가 1인 문서 검색 $curl -XGET http://localhost:9200/INDEX/TYPE/1 * _routing을 하나 만 지정한 문서 검색(routing값은 sports) $curl -XGET http://localhost:9200/_search?routing=sports --> sports에 해당하는 shard id가 0이라면 0번 shard로만 검색 질의가 실행됩니다. *_routing을 두 개 지정한 문서 검색(routing값은 sports, entertainment) $curl -XGET http://localhost:9200/_search?routing=sports,entertainment