Elasticsearch: ¿necesito el controlador JDBC?

Objetivo

Para sincronizar mi servidor elasticsearch con datos nuevos y caducados en mi base de datos SQL

Problema

Hay dos formas muy diferentes de lograrlo y no sé cuál es mejor. Yo puedoHalar información para elasticsearch con una conexión directa a la base de datos SQL utilizando el plugin JDBC river. Alternativamente puedoempujar datos a elasticsearch usando el cliente PHP usando el código que se muestra a continuación como ejemplo:

// 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();

Iba a ejecutar un cron cada treinta minutos para buscar elementos en mi base de datos que no solo tengan un indicador "activo" sino que tampoco tengan un indicador "indexado", eso significa que necesito agregarlos al índice.

PREGUNTA

Ya que tengo dos métodos para sincronizar datos entre elasticsearch y mysql de dos maneras diferentes, ¿cuál es la ventaja y la desventaja de cada opción? ¿Existe un caso de uso específico que define el uso de uno sobre el otro?