A Lucene se le pasa un fichero que se quiere indexar. Si dicho fichero es de texto plano, la indexación será automática (la lleva a cabo la biblioteca de Java java.io). En otro caso, se debe extraer el texto plano del fichero realizando un análisis sintáctico con ayuda de otra herramienta.

A partir de esta entrada, Lucene analiza el texto, lo tokeniza y crea un índice que almacena en memoria RAM o en disco según se especifique. Los autores indican que Lucene trabaja muy bien con la indexación en memoria RAM, pues permite realizar búsquedas más rápidas. Normalmente, se usará el almacenamiento en disco.

A continuación vemos un gráfico que ilustra el proceso:


Una vez creados los índices, se puede hacer búsquedas sobre ellos. Para realizar las consultas se puede optar por codificar una aplicación que lo haga (ver códigos de ejemplo), o bien utilizar alguna herramienta gráfica de tipo LuKE, que generalmente permiten consultar y editar los documentos de forma gráfica.

El inconveniente de esta elección es la versión que usamos de Lucene y de Java, si son muy nuevas, pueden no ser compatibles con las herramientas gráficas.

A continuación un gráfico que ilustra el funcionamiento:


¿Qué es Lucene?

Lucene es una API para recuperación de información de código abierto, originalmente implementada en Java por Doug Cutting. Está apoyado por el Apache Software Foundation y se distribuye bajo la Apache Software License. Lucene tiene versiones para otros lenguajes: Delphi, Perl, C#, C++, Python, Ruby, PHP, .NET.


Es útil para cualquier aplicación que requiera indexado y búsqueda a texto completo. Lucene ha sido ampliamente usado por su utilidad en la implementación de motores de búsquedas, lo cual ha llevado a la falsa idea de que Lucene es un motor de búsquedas con funciones de "crawling" y análisis de documentos en HTML incorporadas. Lucene es una librería software, una herramienta de desarrollo, no es una aplicación de búsqueda.


Para Lucene no importa el origen de los datos, el formato o el idioma, siempre y cuando se puedan convertir en texto. Esto significa que se puede usar Lucene para indexar y buscar datos almacenados en archivos: páginas web en servidores remotos, documentos almacenados en el sistema local de archivos, archivos de texto simple, documentos Microsoft Word, HTML, PDF, o cualquier otro formato del que se pueda extraer información textual.


El centro de la arquitectura lógica de Lucene se encuentra el concepto de Documento (Document) que contiene Campos (Fields) de texto. Esta flexibilidad permite a Lucene ser independiente del formato del fichero. Textos que se encuentran en PDF, páginas HTML, documentos de Microsoft Word, así como muchos otros pueden ser indexados siempre y cuando se pueda extraer información de ellos.


Este diagrama nos ayuda a comprender 'dónde' está situado Lucene en nuestro sistema:

Inauguración

Hola a todos!

El objetivo de este blog es dar una pequeña (y espero que correcta) introducción a Lucene, como herramienta de indexación. Incluyendo algunas otras herramientas adicionales bastante útiles en su combinación con Lucene.

Es más bien un blog benéfico, en español en principio, ya que toda la información que hay (escasa en el campo en el que aplicaré Lucene) está en inglés y muy fragmentada.

Espero que sirva de utilidad en un futuro a alguien. Es el fruto del trabajo realizado durante mi Prácticum y bueno, mi trabajito me ha costado ;)

Debo decir que no hago el blog para resolver dudas sobre esta materia, puesto que no soy experta. Simplemente, espero que lo que escriba aquí sirva y si alguien tiene alguna dudilla, responderé lo que esté en mi mano :)

Un saludo!

Entradas más recientes Inicio