2011-01-05 32 views
12

Estaba navegando algunas preguntas aquí con respecto a MySQL y búsquedas facetadas y vi una respuesta que sugería el uso de Solr.Usando Solr con MySQL

En mi base de datos MySQL, tengo muchas tablas para productos, proveedores, mensajes, usuarios, etc., todas interconectadas. ¿Cómo usaría Solr para hacer búsquedas facetadas de productos? Por lo que entiendo, tendría que seguir alimentando datos de productos de Solr de MySQL, pero ¿cómo trato de indexar los datos? ¿Haz el índice justo después de agregar un nuevo producto? ¿Batch Index? ¿Cómo trato con Solr que representa con precisión los datos que se encuentran en mi base de datos MySQL? (inserta, elimina, etc.)

Gracias de antemano.

+0

Qué lenguaje y un marco está construido en su aplicación? Hay muchos buenos clientes de Solr (por ejemplo, Sunspot para aplicaciones de Ruby) que pueden manejar este tipo de desnormalización y actualización de forma muy transparente. –

+0

Actualmente estoy usando el framework CodeIgniter en PHP. ¿Algo que me puedas sugerir? – RS71

Respuesta

8

Eche un vistazo a data import handler. Además de la actualización por lotes, también puede activar la actualización llamando al update request handler. Tendría que llamar desde su aplicación, pero también puede crear su propio controlador de solicitud de actualización personalizado que se ajuste a sus necesidades.

+0

¿Cómo manejo las eliminaciones? Por lo que entendí, el controlador de importación de datos se ocupa principalmente de inserciones y actualizaciones. Gracias. – RS71

+0

Verifique esto para manejar las eliminaciones en Solr. http://stackoverflow.com/questions/1555610/solr-dih-how-to-handle-deleted-documents –

+0

Agregar, actualizar y eliminar es manejado por el controlador de actualizaciones. La acción depende del mensaje XML enviado. Verifique este recurso: http://wiki.apache.org/solr/UpdateXmlMessages#A.22delete.22_by_ID_and_by_Query. En caso extremo, podría escribir el procedimiento de almacenamiento que se adjuntaría al desencadenar al insertar/actualizar/eliminar en su tabla DB. Sin embargo, si hay una aplicación encima de tu DB, iría con la lógica de mantenimiento del índice de cocción. – jarekrozanski

0

Si utiliza el controlador de importación de datos, use delta import command.

+0

Consulte mi pregunta en los comentarios de la respuesta de Jarekrozanski. Gracias. – RS71

0

SOLR es una aplicación JAVA pero puede acceder a ella utilizando cualquier idioma que proporcione la funcionalidad HTTP GET/POST.

a sus necesidades, usted debe referirse a http://wiki.apache.org/solr/DataImportHandler pero antes de saltar en la parte de indexación pasar por el tutorial en lucene.apache.org/Solr /tutorial.html