Pregunta

Nunca he encontré con una aplicación / clase como Zend Lucene búsqueda antes, como siempre he reclamé mi base de datos.

  

Zend_Search_Lucene opera con   documentos como objetos para atómicas   indexación. Un documento se divide en   campos denominados campos, y tienen un contenido   que se pueden buscar.

     

Un documento está representado por la   Zend_Search_Lucene_Document clase, y   estos objetos de esta clase contienen   casos de Zend_Search_Lucene_Field   que representan los campos de la   documento.

     

Es importante tener en cuenta que cualquier   información puede ser añadido al índice.   información específica de la aplicación o   metadatos se pueden almacenar en el documento   campos, y más tarde recuperar con la   documento durante la búsqueda.

Así que esto es básicamente diciendo que puedo aplicar esto a bases de datos de cualquier cosa, incluyendo, la clave aquí es hacer índices para la búsqueda.

Lo que estoy tratando de entender es dónde exactamente debería almacenar los índices en mi solicitud, tomemos por ejemplo tenemos los teléfonos almacenados en una base de datos, un fabricantes, modelos -? Cómo debo categorizar los índices

Si estoy haciendo índices de los usuarios con direcciones digamos, que obviamente no quieren que sean visibles públicamente, sólo estoy confundido acerca de cómo funciona todo en conjunto, si se conocen las desventajas, las trampas que debería saber mientras lo usa.

¿Fue útil?

Solución

Un índice Lucene se almacena fuera de la base de datos. Me lo almacenan en un directorio "datos" como una hermana para sus controladores, modelos y vistas. Pero se puede almacenar en cualquier lugar; sólo tiene que especificar la ruta al abrir el índice para la consulta.

Es básicamente una copia redundante de los documentos almacenados en su base de datos, y hay que mantenerlos sincronizados mismo. Esa es una de las desventajas: hay que escribir código para llenar el índice Lucene basado en los resultados de una consulta en la base de datos. A medida que agrega los datos a la base de datos, tiene que actualizar su índice de Lucene también.

Una ventaja de utilizar una solución índice de texto completo externo es que se puede reducir la carga de trabajo de su RDBMS. Para encontrar un documento, se ejecuta una búsqueda usando la API de Lucene. El resultado debe incluir un campo que contiene el valor de la clave primaria (como parte del documento, pero no hay necesidad de que sea analizada para la búsqueda FT). Se obtiene este campo hacia atrás cuando se hace una búsqueda Lucene, por lo que puede buscar la fila correspondiente en la base de datos.

¿Tiene que ayudar a responder a su pregunta?

Me hizo una presentación recientemente por la Universidad de MySQL comparación de las soluciones de búsqueda de texto completo: http://forge.mysql.com/wiki/Practical_Full-Text_Search_in_MySQL

También publico mis diapositivas en http://www.SlideShare.net/billkarwin .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top