Diferencia entre revisiones de «Apache Lucene»
(Página creada con «{{Ficha Software |nombre= Apache Lucene |familia= Apache Software Foundation |imagen= Lucene.png |tamaño= |descripción= |imagen2= |tamaño2= |descripción2= |creador= |de...») |
|||
Línea 20: | Línea 20: | ||
|licencia= GPL | |licencia= GPL | ||
|premios= | |premios= | ||
− | |web=[ | + | |web=[https://lucene.apache.org/| Apache Lucene] |
}} '''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]]. | }} '''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]]. | ||
Revisión del 14:15 27 may 2017
|
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 FSDirectoryTítulo del enlace, 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
- Lucene Architecture.png
Arquitectura Lucene