나는 내 mysql db와 elasticsearch db를 동기화 상태로 유지하는 방법을 찾고 있습니다. elasticsearch 용 jprante/elasticsearch-river-jdbc 플러그인을 사용하여 jdbc 강을 설정했습니다. 나는 아래의 요청을 실행하는 경우 :elasticsearch와 데이터베이스를 동기화 유지
curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"driver" : "com.mysql.jdbc.Driver",
"url" : "jdbc:mysql://localhost:3306/MY-DATABASE",
"user" : "root",
"password" : "password",
"sql" : "select * from users",
"poll" : "1m"
},
"index" : {
"index" : "test_index",
"type" : "user"
}
}'
강은 색인 데이터를 시작하지만, 몇 가지 기록을 위해 나는 org.elasticsearch.index.mapper.MapperParsingException
를 얻을. 글쎄,이 문제와 관련된 논의는 here이지만이 문제를 해결하는 방법을 알고 싶습니다.
색인을 생성하려고하는 '유형'의 모든 '입력란'에 대해 explicit mapping을 생성하여 영구적으로 수정할 수 있습니까? 아니면이 문제를 해결할 더 좋은 방법이 있습니까?
또 다른 질문은 jdbc-river가 데이터베이스를 다시 폴링 할 때 전체 데이터 세트 (SQL 쿼리에서 제공됨)를 ES에 다시 색인화하는 것입니다. 확실하지는 않지만 elasticsearch가 새로운 데이터를 추가하고 기존 데이터의 변경 사항을 업데이트하려고하기 때문에이 작업이 수행됩니까? 테이블의 데이터가 정적 인 경우 신선한 데이터 만 인덱싱 할 수 있습니까?
가능한 복제본 [ElasticSearch가 데이터베이스와 동기화되어 있는지 확인] (http://stackoverflow.com/questions/11952558/ensuring-elasticsearch-is-in-sync-with-database) – mahemoff