Apache Lucene

PD-DEV-143 Apache Lucene

Generalidades

Modalidad: Teórico / Práctico
Conocimientos previos:

Conocimientos del lenguaje de programación Java y de Programación Orientada a Objetos en general.

Pre-requisitos:

Java Core

Duración: 12h.

Objetivos

  • Comprender los fundamentos básicos de Information Retrieval.
  • Diseñar los procesos de indexación y de búsqueda usando Lucene.
  • Diferenciar los distintos tipos de Analyzers existentes en Lucene, y desarrollar nuevos Analyzers o extender los existentes.
  • Desarrollar una aplicación Web de búsqueda en un índice Lucene y tareas con Ant para indexar los documentos.

Temario

Aspectos básicos de Lucene

  • Qué es Lucene.
  • Breve historia y evolución.
  • Alcances de la API: qué hace Lucene y qué no hace.
  • Componentes para indexar.
  • Componentes para buscar.
  • Aspectos básicos de administración del índice.
  • Transaccionalidad del índice.
  • Búsquedas en un índice que se está actualizando.

Indexación

  • Estructura del índice. Documentos y campos. Términos.
  • El índice como base de datos con esquema flexible.
  • El proceso de indexación.
  • La etapa de análisis.
  • Opciones para los campos: indexación, almacenado, vector de términos.
  • Campos multi-valuados.
  • Campos de tipos especiales: fechas y números.

Búsqueda

  • Búsquedas: objetos Query.
  • Distintos tipos de búsqueda desde la API: TermQuery, RangeQuery, PrefixQuery, BooleanQuery, PhraseQuery, WildcardQuery, FuzzyQuery.
  • QueryParser. Sintaxis para lograr los distintos tipos de búsquedas.

Proceso de análisis

  • Qué sucede durante el análisis.
  • Tokens. Metadata de los Tokens.
  • TokenStream. Tokenizers y TokenFilters.
  • Análisis durante la indexación.
  • Análisis durante la búsqueda.
  • Analizadores que vienen con Lucene:
    • WhiteSpaceAnalizer.
    • SimpleAnalizer.
    • StopAnalizer.
    • StandardAnalizer.
  • Combinación de campos analizados con campos no analizados: PerFieldAnalizyerWrapper.

Tika: herramienta para extracción de documentos

  • Qué es Tika.
  • Herramienta de extracción. Modo GUI y modo línea de comandos.
  • API para extracción en forma programática.
  • Ventajas y desventajas de usar Tika.

Capacitación en el interior y en el mundo