Elasticsearch - Benötige ich den JDBC-Treiber?

Zie

Um meinen Elasticsearch-Server mit neuen und abgelaufenen Daten in meiner SQL-Datenbank zu synchronisieren

Proble

Es gibt zwei sehr unterschiedliche Wege, wie ich das erreichen kann und ich weiß nicht, was besser ist. Ich kann entwederziehe Informationen an elasticsearch mit direkter Verbindung zur SQL-Datenbank über das JDBC-River-Plugin. Alternativ kann ichdrücke data to elasticsearch mit dem PHP-Client am Beispiel des folgenden Codes:

// The Id of the document
$id = 1;

// Create a document
$tweet = array(
    'id'      => $id,
    'user'    => array(
        'name'      => 'mewantcookie',
        'fullName'  => 'Cookie Monster'
    ),
    'msg'     => 'Me wish there were expression for cookies like there is for apples. "A cookie a day make the doctor diagnose you with diabetes" not catchy.',
    'tstamp'  => '1238081389',
    'location'=> '41.12,-71.34',
    '_boost'  => 1.0
);
// First parameter is the id of document.
$tweetDocument = new \Elastica\Document($id, $tweet);

// Add tweet to type
$elasticaType->addDocument($tweetDocument);

// Refresh Index
$elasticaType->getIndex()->refresh();

Alle dreißig Minuten sollte ein Cron ausgeführt werden, um in meiner Datenbank nach Elementen zu suchen, die nicht nur ein "active" -Flag aufweisen, sondern auch kein "indexed" -Flag, dh, sie müssen dem Index hinzugefügt werden .

FRAG

Seeing wie ich zwei Methoden habe, um Daten zwischen elasticsearch und mysql auf zwei verschiedene Arten zu synchronisieren, was ist der Vorteil und der Nachteil jeder Option. Gibt es einen bestimmten Verwendungszweck, der definiert, wie man eins über das andere verwendet?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage