2017-01-24 8 views
1

ElasticSearch에 저장할 계획 인 많은 수의 항목을 만드는 데이터 소스가 있습니다. 소스는 ElasticSearch에서 같은 문서에 대한 두 개의 항목을 작성 :롤오버 API를 사용하는 동안 ElasticSearch (ES)의 기존 문서 업데이트

  • 주를 포함 ES
  • '끝'부분에 임의의 키에 초기화 시간 및 기타 세부 사항을 기록하는 '초기화하기'부분 데이터를 생성하고 init의 무작위 키 아래 ES에서 처음 생성 된 문서 (병합)를 업데이트합니다.

나는 별명이 rollover index을 사용하여 실제 인덱스에 을 가리키는, ElasticSearch 시간 기반 인덱스를 사용해야합니다. 업데이트를 위해 update API을 사용하여 init과 finish를 병합합니다.

질문 : 무작위 키가있는 init 문서가 현재 색인에 있지만 (이전 색인이 이미 롤백되어있는 경우) 해당 키를 사용하여 업데이트하는 경우 성공적으로 실행합니까? 그렇지 않은 경우 업데이트를 수행하는 가장 좋은 방법은 무엇입니까?

답변

0

나는 조용하게 한 후에 테스트를 시작했습니다.

짧은 대답 : 별칭을 사용하여 인덱스를 롤오버 한 후에는 별칭을 사용하는 업데이트 작업이 새 인덱스 만 참조하므로 새 인덱스에 문서가 만들어져 별도의 두 문서가 생성됩니다.

해결 방법 중 하나는 마지막 2 개 (또는 필요한 경우 더 많은) 색인에서 검색을 수행하고 업데이트에 사용할 비 별칭 색인 이름을 계산하는 것입니다.

내가 선호하는 다른 솔루션은 롤오버 사용을 피하는 것이지만 문서의 필수 날짜 필드에서 색인 이름을 계산하고 템플릿을 사용하여 매핑을 정의하는 응용 프로그램에서 새 색인을 만듭니다. 이 방법으로 이벤트를 소싱 및 재생하면 동일한 인덱스가 생성됩니다.