2016-08-28 5 views
2

(예를 들어, 새로운 사진 업로드됩니다.)elasticsearch 데이터를 MySql과 동기화하는 방법은 무엇입니까? 내가</em></strong>이 <strong><em>MySQL의</em></strong>에 데이터를 유지하고 나는 최근 INSERT에 ES에 데이터를 삽입하는 <strong><em>스프링 데이터 elasticsearch</em></strong>을 구현했습니다 <strong><em>스프링 데이터 JPA를 사용하고

이제 분명히 초기 데이터 만 삽입됩니다.

예로 들어 인스 타 그램를 취할 수 있습니다 :

  1. 당신은 사진을 게시
    • 사진 (사진 개체 - 설명, 위치, 태그)
    • 사용자 (게시 사용자)
    • 아니요 (0)
    • 아니요 (0)

이 모든 데이터는 elasticsearch사진 인덱스 아래에 삽입 될 것이다. 사용자가과 사진에을 주석 를 좋아 를 시작하면 데이터가 오래된 될 것이다.

어떻게 해결할 수 있습니까?!

우리는 모든 사진을 통해 이동 (이 에 대한 현재의 모든 인덱스를 제거하는 의미 모든 X 분에게 elasticsearch로 각을 삽입 할 것 cronjob에/작업을 만들겠습니까 사진) ?! 이 은 오랜 시간이 걸리고 많은 리소스를 사용하는 것처럼 보입니다!

모든 데이터를 다시 삽입하는 대신 현재 elasticsearch 색인을 모두 업데이트하면됩니까?

이 문제를 해결하기 위해 수행 한 작업은 무엇입니까?

답변

3

이렇게하는 표준 방법은 데이터베이스에 마지막으로 업데이트 된 유형의 열을 유지하고 변경이있을 때마다 업데이트하는 것입니다.

인덱서는 마지막으로 데이터를 마지막으로 인덱싱 한 이후로 데이터베이스에서 아무 것도 쿼리하지 않아도됩니다.

신뢰할 수있는 방법에 따라 정기적으로 전체 비교를 수행해야 할 수도 있습니다.