2012-05-01 30 views
5

cuando ejecuto/solr/dataimport? Command = full-import procesa todos los documentos. Sin embargo, cuando ejecuto una importación delta (/ Solr/dataimport? Comando = delta-importación) que identifica correctamente los datos actualizados (retornos "<str name="Total Rows Fetched">1</str> '), pero no procesa nada de eso (devuelve' <str name="Total Changed Documents">0</str>")solr delta import "recupera" pero no "procesa"

mi datos-config.xml es como la siguiente:

<entity name="category" pk="catID" 
query="SELECT CONCAT('c_',catID) ID, catID, catName FROM category" 
deltaImportQuery="SELECT CONCAT('c_',catID) ID, catID, catName FROM category WHERE catID = '{$dataimporter.delta.catID}'" 
deltaQuery="SELECT catID FROM category WHERE catDate &gt; '${dataimporter.last_index_time}'"/> 

(nota - hay una razón particular para mi concat)

¿por qué el proceso de importación completo, mientras que las recuperaciones de importación delta, pero no procesa?

+0

¿Qué quiere decir con "pero no procesa nada"? Quizás solo necesite emitir un comando explícito de solr 'commit'? –

+0

Quiero decir que solr no get update - period. ¿Por qué se compromete la importación completa automáticamente y delta-import no? Por cierto, ejecutando la co mmand/solr/dataimport? command = delta-import & commit = true todavía no funciona ... – YWSW

+0

¿Quiere decir que no ve los nuevos documentos en el índice? ¿Sigue siendo cierto incluso después de forzar una operación 'commit'? –

Respuesta

0

Esto se debe a que una importación completa procesará todos los documentos en su base de datos.

Un delta-importación sólo procesa los documentos que han sido modificados desde el último importación de cualquier tipo (en su caso, dictadas por el campo catDate).

Por ejemplo, supongamos que usted hace una importación completa en 09/09/2012 12:15:38.

A continuación, hacer un delta-importación en 2012-09-10 12:15:38. Solo se procesarán los documentos que tengan un catDate> '2012-09-09 12:15:38'.

La idea es que el delta-importación es una forma de mantener un índice constante cambio sin tener que hacer una importación completa cada vez.

+0

gracias. pero el problema era que la importación delta no importaba nada – YWSW

0

En su caso, la consulta delta funciona bien, pero falla la consulta delta-importación.

Esto se debe a que ha dado,

deltaImportQuery = "SELECT CONCAT ('_ c', catID) Identificación, catID, catName de la categoría DONDE catID = '{$ dataimporter.delta.catID}'"

Pero debe darse como,

deltaImportQuery = "SELECT CONCAT ('_ c', catID) Identificación, catID, catName de la categoría DONDE catID = '$ {} dataimporter.delta.catID'"

5

'{$dataimporter.delta.catID}', aquí el catID debe ser el valor del atributo de nombre en las definiciones de campo. Tuve el mismo problema, luego me di cuenta de que la variable referenciada es el nombre del campo ... Espero que funcione.

1

tuve mismo tema y cuenta de que deltaImportQuery entre mayúsculas y minúsculas

hizo que mi columna ID como "ID"

deltaImportQuery = "SELECT ID, estado, nombre, lugar, ciudad de temp donde ID = '$ {dih.delta.ID}

Cuestiones relacionadas