데이터 수정편집

Elasticsearch는 실시간에 가깝게 데이터 조작 및 검색 기능을 제공합니다. 기본적으로 데이터를 색인화/업데이트/삭제하는 시점부터 검색 결과에 나타나는 시점까지 1초 정도 걸립니다(새로고침 간격). 이는 트랜잭션이 완료되면 즉시 데이터가 사용 가능해지는 SQL과 같은 다른 플랫폼과 구별되는 중요한 특징입니다.

문서 색인화/대체편집

앞서 단일 문서를 색인화하는 방법을 살펴봤습니다. 그 명령을 다시 실행해볼까요?

PUT /customer/external/1?pretty
{
  "name": "John Doe"
}

역시 지정된 문서를 customer 색인, external 유형으로 색인화하고 ID로 1을 지정합니다. 다른 문서(또는 동일한 문서)로 위 명령을 다시 실행한다면 Elasticsearch는 ID가 1인 기존 문서를 새 문서로 대체할 것입니다. 즉 다시 색인화합니다.

PUT /customer/external/1?pretty
{
  "name": "Jane Doe"
}

위에서는 ID가 1인 문서의 이름이 "John Doe"에서 "Jane Doe"로 바뀝니다. 만약 다른 ID를 사용한다면 새 문서가 색인화되고 색인의 기존 문서는 변동 없이 유지됩니다.

PUT /customer/external/2?pretty
{
  "name": "Jane Doe"
}

위에서는 새 문서를 색인화하고 ID를 2로 지정합니다.

색인화할 때 ID 부분은 선택 사항입니다. 지정하지 않으면 Elasticsearch에서 임의 ID를 생성하여 문서 색인화에 사용합니다. Elasticsearch에서 생성한 실제 ID(또는 이전의 예에서 명시적으로 지정한 ID)가 색인 API 호출의 일부로 반환됩니다.

이 예는 명시적 ID가 없는 문서를 색인화하는 방법을 보여줍니다.

POST /customer/external?pretty
{
  "name": "Jane Doe"
}

위 사례에서는 ID를 지정하지 않았으므로 PUT 대신 POST 동사를 사용합니다.