Apache+Lucene

=Apache Lucene = toc

Introducción
Lucene es un software de recuperación de información (IR) de código abierto. Es una API flexible que permite añadir capacidades de indexación y búsqueda a cualquier sistema que se esté desarrollando. Inicialmente fue implementado en Java por Doug Cutting. Después se crearon versiones en otros lenguajes como Delphi, Perl, C#, C++, Python, Ruby y PHP.

Historia
Lucene surge como respuesta al creciente interés por los sistemas de clasificación automática de datos a raíz del desarrollo masivo de las redes de computadoras y medios de almacenamiento. Originalmente escrita por Doug Cutting, en Septiembre de 2001 pasó a formar parte de la familia de código abierto de la fundación Jakarta. Desde entonces, debido a su mayor disponibilidad, ha atraído a un gran número de desarrolladores, incluso empresas como Hewlett Packard, FedEx, etc. lo usan, o al menos lo han evaluado. Hasta ahora, incluía varios subproyectos como Lucene Java, Droids, Lucene.net, Lucy, Mahout, Solr, [|Nutch], Open Relevance Proyect, PyLucene y Tika. Sin embargo, actualmete Solr se ha fusionado con el propio proyecto Lucene y Mahout, Nutch y Tika se han convertido en proyectos independientes.

Características
En la indexación incremental se pueden añadir documentos a un índice ya creado con anterioridad de forma fácil, frente a la indexación por lotes en la que, una vez que ha sido creado el índice para un conjunto de documentos, el añadir algunos documentos nuevos es una tarea difícil, por lo que se opta por reindexar todos los documentos de nuevo. Lucene soporta ambos tipos de indexación. Lucene permite indexar tanto documentos y páginas web como el contenido procedente de una base de datos. Lucene permite dividir el contenido de los documentos en campos y así poder realizar consultas con un mayor contenido semántico, en vez de tratar los documentos como simples flujos de palabras. Esto es, se pueden buscar términos en los distintos campos del documento concediéndole más importancia según el campo en el que aparezca. Por ejemplo, si se dividen los documentos en dos campos, título y contenido, puede concederse mayor importancia a aquellos documentos que contengan los términos de la búsqueda en el campo título. Al eliminar palabras como a, unos, el, la, etc., poco representativas del documento, se reduce considerablemente el tamaño del índice así como el tiempo de indexación. Estas palabras están contenidas en lo que se denomina lista de parada, que es la técnica de indexación contemplada por Lucene. Lucene gestiona que varios usuarios puedan buscar en el índice de forma simultánea así como también que un usuario modifique el índice al mismo tiempo que otro lo consulta. El stemming es un método para reducir una palabra a su raíz
 * Indexación incremental.
 * Origen de datos.
 * Contenido Etiquetado.
 * Técnica de indexación.
 * Concurrencia.
 * Elección del idioma
 * Multiplataforma
 * Permite organizar los resultados por relevancia
 * Stemming
 * Soporta la indexación de documentos con formato TXT, PDF, DOC, RTF, XML, PPT, HTML

Licencia
La licencia Apache (Apache License o Apache Software License para versiones anteriores a 2.0) es una licencia de software libre creada por la [|Apache Software Foundation] (ASF). La licencia Apache requiere la conservación del aviso de copyright y el disclaimer, pero no es una licencia [|copyleft], ya que no requiere la redistribución del código fuente cuando se distribuyen versiones modificadas.

Usuarios de Lucene

 * Wikipedia.com
 * Monster.com
 * search.wikia.com
 * technorati.com
 * Fotocasa.com
 * Infojobs.com.br
 * Laboris.net

Versiones

 * 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, tipo Google)
 * Montezuma - Lisp