2014-01-22 2 views
1

jdbc river plugin은 간단한 전략 모드에서 새로운 행을 추가 할 때 인덱스를 업데이트하지만 필드 값에 변경 사항이있는 경우 기존 행을 업데이트합니까? 데이터베이스에있는 타임 스탬프 필드와 매핑이 없다는 것을 알았으므로 그렇지 않습니다.elasticsearch jdbc river plugin 트랙이 mysql의 기존 행을 변경합니까?

+2

버전 관리에 따라 문서를 업데이트하거나 덮어 씁니다. – shyos

+1

[기타 답변/질문은 여기] (http://stackoverflow.com/questions/21260086/elasticsearch-river-jdbc-mysql-not-deleting-records)에 대한이 다른 최근 답변에 좋은 정보가 있습니다. – mconlin

+0

예 , 고마워, 나는 그것이 지금 어떻게 작동 하는지를 이해한다. 기본적으로 쿼리를 다시 실행하고 델타를 기반으로 필요한 경우 새 버전으로 문서를 다시 업데이트합니다. – dickyj

답변

0

아래 예제와 같이 $river.state.last_active_begin을 사용하여 쿼리 내에서 타임 스탬프를 사용할 수 있습니다. 이렇게하면 마지막 강이 실행 된 이후에 추가 된 제품 행을 가져옵니다.

{ 
    "type": "jdbc", 
    "jdbc": { 
    "url": "jdbc:mysql://localhost:3306/test", 
    "user": "", 
    "password": "", 
    "sql": [ 
     { 
     "statement": "select * from \"products\" where \"mytimestamp\" > ?", 
     "parameter": [ 
      "$river.state.last_active_begin" 
     ] 
     } 
    ], 
    "index": "my_jdbc_river_index", 
    "type": "my_jdbc_river_type" 
    } 
} 
관련 문제