Apache Lucene

Revisión del 12:19 29 jun 2018 de Reynier idict (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Apache Lucene
Información sobre la plantilla
Parte de la familia Apache Software Foundation
Lucene.png
Lanzamiento inicial1999
Última versión estableApache Lucene 6.5.1
GéneroÁmbito software libre, código abierto
Sistemas Operativos compatiblesmultiplataforma
LicenciaGPL
Sitio web
[https://lucene.apache.org/

Apache Lucene:Es una API de código abierto para recuperación de información, originalmente implementada en Java por Doug Cutting. Está apoyado por el Apache Software Foundation y se distribuye bajo la Apache Software License.

Historia

Lucene fue desarrollado por Dog Cutting y su primer release fue en marzo del año 2000. En Septiembre del 2001 paso a formar parte de la familia de Apache Software Foundation's Jakarta. Durante los siguientes años Lucene ha ido creciendo constantemente transformandoce en una herraminenta muy poderosa para la indexacion y busqueda de informacion.

Evolución

Versiones

Lucene tiene o se encuentran en desarrollo de versiones para varios lenguajes de programación además de Java:

Un ejemplo

  • Indexación:

El proceso de indexación consiste en analizar y extraer de entre toda la disponible, la verdaderamente relevante. Posteriormente, con esa información se crea el índice a partir del cual se realizarán las búsquedas. El índice es una estructura de datos que permite acceso rápido a la información, algo similar semánticamente a lo que podría ser el índice de un libro.

  • Búsqueda:

El proceso de búsqueda consiste en consultar el índice para obtener los documentos donde aparecen unas determinadas palabras o bien concuerdan con una determinada expresión de consulta. A continuación vamos a ver un sencillo ejemplo de indexación (LuceneCreateIndexApp.java) y consulta (LuceneSearchApp.java) sobre los archivos con extensión .txt de un directorio. Indexación de información: LuceneCreateIndexApp.java Introducción a las clases más comunes durante el proceso de indexación.

  • IndexWriter:

Es el corazón del proceso de indexación. Encapsula el índice y contiene entre otras cosas cierta información de documentos que lo componen.

  • Directory:

Es una clase abstracta que representa la ubicación del índice: memoria RAM, archivo, etc. En el ejemplo se usa FSDirectory, que es la implementación de la clase para guardar el índice en un archivo.

  • Analizer:

Es una clase Abstracta cuya función es filtrar la información relevante con la cual se creará el índice y eliminar el resto. Por ejemplo, elimiminar las palabras cortas (stop word) o que aparecen con mucha frecuencia. Por ejemplo, eliminaría palabras (dependiendo del idioma) del tipo: en, la, los, etc.

  • Document:

Es una clase que almacena campos (Field) con la meta información que queremos indexar y/o guardar en el índice (emails, rutas, autor, fecha, etc.).

  • Field:

Son las fragmentos de información de cada documento que deseamos almacenar en el Document. Búsqueda de información: LuceneSearchApp.java Introducción a las clases más comunes durante el proceso de búsqueda.

  • IndexSeacher:

Es el corazón del proceso de búsqueda a través del cual se pueden realizar consultas (Query) que devuelven resultados (Hits).

  • Term:

Cuando querermos realizar una consulta definimos las condiciones de búsqueda a través de Term, es decir, una consulta es un conjunto de Term.

  • Query:

Es una clase abstracta que permite definir la consulta sobre la que queremos realizar la búsqueda. TermQuery, es una de las muchas implementaciones de Query y que nos permite búscar consultando los Field.

  • Hits:

Contiene los documentos (Document) que cumplen las condiciones de la búsqueda realiza.

Diagrama integración

Fuentes

  • Epiwiki. [1]
  • Adictos al Trabajo.com. [2]
  • Apache Lucene. [3]