Читать книгу Desarrollo de motores de búsqueda utilizando herramientas open source - Jose Manuel Ortega Candel - Страница 26

1.6.1 Lucene

Оглавление

Lucene es el corazón de la mayoría de los motores de búsqueda de hoy en día. Básicamente acepta el texto que se va a buscar, lo almacena en una estructura de datos (índice invertido) y, luego, acepta varios tipos de consultas de búsqueda y devuelve un conjunto de resultados que coinciden con los criterios de búsqueda.

Muchas soluciones de búsqueda basadas en servidor, como Apache Solr o ElasticSearch, están construidas sobre Lucene y marcan una evolución en el desarrollo de motores de búsqueda. El objetivo del diseño de estas herramientas es ofrecer un tipo de soluciones que proporcionen escalabilidad y alta disponibilidad a la base que trae Lucene como motor de búsqueda.

En los últimos años han surgido diferentes proyectos de la fundación Apache que también se consideran parte del universo de Lucene. Aunque estos proyectos son independientes, y más conocidos en otros contextos, se pueden integrar de forma sencilla con Lucene. Entre estos proyectos podemos destacar Hadoop, Mahout (un framework para aprendizaje automático), Nutch (una aplicación de búsqueda basada en Lucene) y Tika (que permite analizar documentos en diferentes formatos, como PDF, y se puede utilizar para alimentar con datos un índice de Lucene).

• Hadoop: http://hadoop.apache.org

• Mahout: http://mahout.apache.org

• Nutch: http://nutch.apache.org

• Tika: http://tika.apache.org

Apache Lucene guarda toda la información en una estructura llamada índice invertido. Se trata de una estructura de datos donde para cada término que encontramos en los diferentes documentos, obtiene los índices donde aparecen. Puede pensar en el índice invertido como en una estructura de datos donde estos están orientados a términos en lugar de a documentos.

Entre los conceptos clave que podemos encontrar en Lucene destacan:

• Index: colección de documentos con similares características.

• Type: partición lógica que contiene aquellos documentos que comparten información a través de un atributo.

• Document: unidad básica de información.

• Mapping: incluye datos sobre cómo la información se almacena en el índice en forma de atributos y propiedades, y sobre cómo se debe tratar un campo a la hora de hacer las búsquedas, a nivel de extraer tokens de una determinada cadena de búsqueda.

• Relevancia: son los algoritmos utilizados para clasificar los resultados basados en la consulta.

• Corpus: colección de todos los documentos del índice.

• Segmentos: datos fragmentados que almacenan el índice invertido y permiten buscar en el índice de una manera eficiente.

Desarrollo de motores de búsqueda utilizando herramientas open source

Подняться наверх