2010-04-19 8 views
5

caps tarde,Mediante el puerto de Solr y Lucene Zends juntos

Después de mis aventuras con Zend Lucene-Buscar y descubrir que no es todo es tan bueno como para estar al indexar grandes conjuntos de datos, me he vuelto a Solr (gracias a Bill Karwin por eso :))

Tengo Solr indexando el db mucho más rápido ahora, tomando solo más de 8 minutos para indexar una tabla de más de 1,7 millones de filas, con lo que estoy muy satisfecho .

Sin embargo, cuando intento buscar el índice con el puerto Zend, me aparece el siguiente error;

Error fatal: excepción no detectada 'Zend_Search_Lucene_Exception' con el mensaje 'Formato de archivo de segmentos no admitidos' en /var/www/Zend/Search/Lucene.php:407 Seguimiento de pila: # 0/var/www/Zend/Search/Lucene .php (555): Zend_Search_Lucene -> _ readSegmentsFile() # 1 /var/www/z_search.php(12): Zend_Search_Lucene -> __ construct ('tmp/feeds_index') # 2 {main} arrojado en/var/www/Zend /Search/Lucene.php en la línea 407

He intentado buscar pero parece que no se puede encontrar nada sobre este problema. Parece que todo el mundo puede hacer que funcionen.

Cualquier ayuda como siempre muy apreciada :)

Gracias,

Tom

Respuesta

2

Confirmé en mi máquina que un índice de Lucene creado a través de Solr no puede leerse con Zend_Search_Lucene.

Zend_Search_Lucene arroja esa excepción cuando detecta un formato de índice Lucene que no es compatible. Al mirar el código, Zend actualmente admite formatos anteriores a 2.1, 2.1 y 2.3.

Solr crea un índice en el formato FORMAT_HAS_PROX que, por lo que puedo decir, es utilizado por Lucene 2.9 y versiones posteriores.

+0

Ahhh basura. ¿No hay trabajo alrededor entonces supongo? Supongo que tampoco tendrán código Zend actualizado pronto. Parece que presionaré para ese servidor Jetty/Tomcat. – Tom

+1

Creo que una vez que lo ejecutes, seguramente serás más feliz con él. La única otra sugerencia que tengo es tratar de ver si puedes obligar a Solr a crear el índice Lucene en formato 2.3. Pero no sé cómo se puede hacer eso. –

1

nunca utilizado Zend antes, pero he utilizado Lucene/Solr.

¿Está utilizando la misma versión de Lucene para la indexación de Solr y el puerto Zend? Compruebe para ver qué archivo jar Lucene se está utilizando para cada uno. Si son diferentes, entonces Solr podría estar produciendo un índice Lucene que no es compatible con el puerto Zend.

+0

Es probable que el verso de índice de Solr sea más avanzado que el de Zend. Es posible que desee considerar dar un paso adicional, usar Solr para buscar y comunicarse con PHP a través de una interfaz HTTP, como XML o JSON. –

+0

Lo habíamos considerado, el único problema es que no estamos seguros de las posibilidades de ejecutar Jetty/Tomcat en nuestro servidor en vivo. El plan era indexar el db localmente y luego subirlo cada x días. Examinaré las versiones de Lucene tanto para Zend como para Solr, y me aseguraré de que estén cantando de la misma hoja de himnos. – Tom

Cuestiones relacionadas