Halten elasticsearch und die Datenbank synchronisiert

Ich versuche, herauszufinden, einen Weg, um meine mysql-db und elasticsearch-db synchronisiert. Ich habe setup eine jdbc-Fluss über die jprante /elasticsearch-river-jdbc plugin für elasticsearch. Wenn ich führen Sie die nachstehenden Antrag:

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"
}
}'

dem Fluss beginnt die Indizierung der Daten, aber für die paar Schallplatten, die ich bekommen org.elasticsearch.index.mapper.MapperParsingException. Nun gibt es Diskussionen in Bezug auf dieses Problem hier, aber ich möchte wissen, einen Weg, um dieses Problem.

Ist es möglich, dauerhaft dieses Problem beheben, indem eine explizite Zuordnung für alle 'Felder' des 'Typ', dass ich versuche, index oder gibt es einen besseren Weg, um dieses Problem zu lösen?

Andere Frage, die ich habe, ist, wenn der jdbc-Fluss abfragt, die Datenbank erneut, so scheint es, um re-index die gesamten Daten-set(gegeben in der sql-Abfrage) wieder in ES. Ich bin mir nicht sicher, aber ist dies getan, weil elasticsearch hinzufügen will frische Daten sowie update-alle änderungen in den vorhandenen Daten? Ist es möglich index nur die frischen Daten, wenn die Daten der Tabelle ist statisch?

InformationsquelleAutor serpent403 | 2012-10-03
Schreibe einen Kommentar