Apache Lucene

Apache Lucene
Parte de la familia Apache Software Foundation
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

  • Version 0.01 en Marzo 2000 Primer release open source (SourceForge)
  • Version 1.0 en Octubre 2000
  • Version 1.01b en Julio 2001 Ultimo release de SourceForge?
  • Version 1.2 Junio 2002 Primer release de Apache Jakarta
  • Version 1.3 Diciembre 2003
  • Version 1.4 Julio 2004
  • Version 1.4.1 Agosto 2004
  • Version 1.4.2 Octubre 2004
  • Version 1.4.3 Invierno 2004
  • Version 2.3.2 Mayo 2008

Versiones

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

  • Lucene4c - C
  • CLucene - C++
  • MUTIS - Delphi
  • NLucene - .NET
  • Lucene.Net - .NET
  • Plucene - Perl
  • PyLucene - Python
  • Ferret y RubyLucene - Ruby
  • Zend Framework (búsquedas) - PHP
  • Nutch - Java (Buscador web)
  • Montezuma - Lisp

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.

Fuentes

  • Epiwiki.
  • Adictos al Trabajo.com.
  • Apache Lucene.
This article is issued from Ecured. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.