2011-07-11 9 views
7

Tengo una versión de índice existente usando apache solr 1.4.Actualizar solr 1.4 index a solr 3.3?

Quiero utilizar este índice existente en la versión 3.3. Como sabe, el formato del índice se cambia después de 3.x, entonces, ¿cómo es posible hacer esto?

He exportado el índice existente (que está en la versión 1.4) utilizando Luke to XML.

Respuesta

7

Hay dos maneras de hacer esto:

  1. si su índice es sin optimizar, a continuación, simplemente optimizarla - esto va a actualizar el formato de archivo en el camino.

  2. si su índice ya está optimizado, no puede hacer esto. En su lugar, utilice la herramienta de línea de comandos suministrada con Solr (la ruta puede ser diferente de la mía

    java -cp work/Jetty_0_0_0_0_8983_solr.war__solr__k1kf17/webapp/WEB-INF/lib/lucene-core-3.3.0.jar org.apache.lucene.index.IndexUpgrader -verbose /path/to/index/directory 
    

Sin embargo, tenga en cuenta que esto sólo cambia el formato de archivo - no se detendrá advertencias de desaprobación porque a menos que usted le indique de lo contrario, solrconfig.xml defecto aún asumiendo que usted está utilizando un formato de índice vieja ver http://www.mail-archive.com/[email protected]/msg23233.html

Es posible que aún así obtener una gran cantidad de líneas como esto en su archivo de registro:.

WARNING: LowerCaseFilterFactory is using deprecated LUCENE_24 emulation. You should at some point declare and reindex to at least 3.0, because 2.x emulation is deprecated and will be removed in 4.0 

hasta que le informe a solrconfig.xml que está listo para usar todas las funciones del nuevo formato de índice. Para ello, agregue lo siguiente a solrconfig.xml (en el nivel superior, justo después de la configuración abortOnConfigurationError).

<!-- Controls what version of Lucene various components of Solr 
    adhere to. Generally, you want to use the latest version to 
    get all bug fixes and improvements. It is highly recommended 
    that you fully re-index after changing this setting as it can 
    affect both how text is indexed and queried. 
    --> 
<luceneMatchVersion>LUCENE_33</luceneMatchVersion> 
0

Si tiene los datos: la mejor manera es indexar todos los datos nuevos en solr 3.3 Puede usar el manejador de importación de datos para indexar los archivos XML exportados.

Si la construcción de un nuevo índice no es una solución para usted, usted tiene diferentes posibilidades:

Por lo que yo sé, Solr 3.3 puede leer índices de edad. Entonces, una idea podría ser el uso de fragmentos. Un fragmento para los datos antiguos (solo lectura) y el otro fragmento para los nuevos datos. Lamentablemente, en esta solución no podrá modificar los datos antiguos.

+0

1.I copiar el viejo schema.xml (1,4 V) al nuevo servidor (3.3) 2. He copiado el viejo índice para el índice del directorio nuevo en 3.3 y reiniciar el servidor, las cosas fueron muy bien! Lo extraño es que leo en alguna parte de las notas de la versión 3.3 que la nueva estructura de índice no es compatible con las antiguas ... De todos modos, estoy contento de que todo haya ido bien :) –

+0

"que la nueva estructura de índice es no es compatible con los viejos "... sí ... supongo, eso es correcto. Pero creo que su sistema 3.3 se está ejecutando en algo así como un "modo de compatibilidad" y no usa el nuevo formato de índice. Probablemente, su índice sigue siendo 1.4, que no es compatible con lucene 4, si piensa en una actualización en el futuro. –

+0

Tienes razón, pero ¿cómo hacer la actualización? Esta fue mi principal pregunta. –