ES의 더 많은 "정규화 된"데이터에 대해 중첩 쿼리를 실행하는 개념 증명을 실행 중입니다.중첩 대 상위/하위 문서에 대한 확장
> - - 중첩 된
고객과 이메일 - -
이름을 이벤트 -> 을 - 생성 - 유형 이제
내가 특정 고객에 대한 이벤트 목록이 다른 이동 될 수있는 상황이 고객. 예 : 고객 A는 고객 B는 가
내가 지금 UI에서 그래프이 실행하는 고객의 수백만 쿼리 규모에서 고객 B
으로 고객 A로부터 모든 이벤트를 이동하려면 5000 개 이벤트
입니다있다 (50 개) 이벤트가 부모/자식이 더 적합하거나 그것을 처리 할 수 있어야합니까?내 상황에서 장단점은 무엇입니까?
http://www.elasticsearch.org/guide/reference/api/updatehtml은 부분 업데이트가 0.20 이래로 가능하다고 제안하는 것 같습니다. : "업데이트 API는 또한 기존 문서 (간단한 재귀 병합, 객체의 내부 병합, 핵심"키/값 "및 배열 교체)에 병합되는 부분 문서 (0.20부터)를 전달할 수 있습니다." –
인터페이스에만 적용됩니다 (예 : 최종 사용자가 전체 문서를 제공하지 않고 필드를 업데이트 할 수 있음). 내부적으로 Lucene은 _source (삭제해야 함)에서 삭제 한 후 다시 색인을 생성합니다. Lucene은 초기 문서 작성 중에 연속 블록을 작성하고 임의 액세스 작성은하지 않으므로 갱신만으로는 불가능합니다. 삭제조차도 실제로는 삭제되지 않으며, 다음 병합이 삭제 될 때까지 삭제 된 것으로 표시됩니다. – Zach
설명서에서 "부모 문서를 다시 인덱싱하지 않고 업데이트 할 수 있습니다." 따라서 "부모 변경하기"는 기존 자식 문서를 삭제 한 다음 새로운 부모 아래에서 동일한 문서를 색인에 추가한다는 것을 의미합니다. 구식입니다. https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child.html을 참조하십시오. –