Оглавление
Jose Manuel Ortega Candel. Desarrollo de motores de búsqueda utilizando herramientas open source
ÍNDICE
INTRODUCCIÓN
Capítulo 1. INTRODUCCIÓN A LOS MOTORES DE BÚSQUEDA
1.1 DEFINICIÓN DE MOTORES DE BÚSQUEDA
1.2 ¿POR QUÉ NECESITO UN MOTOR DE BÚSQUEDA?
1.2.1 Extracción de texto en documentos
1.2.2 Operaciones de lectura
1.2.3 Esquema flexible
1.3 FUNCIONAMIENTO DE UN MOTOR DE BÚSQUEDA
1.3.1 Buscadores de directorios
1.3.2 Buscadores jerárquicos
1.3.3 Spiders (arañas o crawlers)
1.4 PROCESO DE INDEXACIÓN
1.4.1 Rendimiento en la indexación de documentos
1.4.2 Stopwords
1.4.3 Stemming
1.5 RECUPERACIÓN DE LA INFORMACIÓN
1.5.1 Extracción de información
1.5.2 Sistema de búsqueda/respuesta
1.6 MOTORES DE BÚSQUEDA E INDEXADORES
1.6.1 Lucene
1.6.2 Índice invertido
1.6.3 Apache Solr
1.6.4 ElasticSearch
1.6.5 Otros motores de búsqueda
1.7 HERRAMIENTAS DE PROCESAMIENTO DE LENGUAJE NATURAL (PLN)
Capítulo 2. APACHE LUCENE
2.1 INTRODUCCIÓN A APACHE LUCENE
2.2 MÓDULOS Y FUNCIONALIDADES DE APACHE LUCENE
2.3 ARQUITECTURA DE APACHE LUCENE
2.3.1 Proceso de tokenización y búsqueda en Apache Lucene
2.4 TRABAJAR CON APACHE LUCENE
2.4.1 Configuración del entorno
2.4.2 Crear un índice
2.4.3 Crear y escribir documentos en un índice
2.5 REALIZAR BÚSQUEDAS EN APACHE LUCENE
2.5.1 Obtención de un IndexSearcher
2.5.2 Proceso de búsqueda con IndexSearcher
2.5.3 Crear consultas con Lucene QueryParser
2.5.4 Sintaxis de las consultas en Apache Lucene
2.6 BÚSQUEDA DE INFORMACIÓN CON APACHE LUCENE
2.7 BÚSQUEDA EN MÚLTIPLES ÍNDICES DE LUCENE
2.8 HERRAMIENTAS DE ADMINISTRACIÓN DE LUCENE
2.9 HERRAMIENTAS DE BÚSQUEDA QUE USAN APACHE LUCENE
2.9.1 Krugle
2.9.2 Google Dataset Search
2.9.3 Otros repositorios y portales
Capítulo 3. APACHE SOLR
3.1 INTRODUCCIÓN A APACHE SOLR
3.2 ARQUITECTURA DE APACHE SOLR
3.3 INDEXACIÓN E ÍNDICE INVERTIDO EN APACHE SOLR
3.3.1 Relevancia y filtro en las búsquedas
3.4 INSTALACIÓN DE SOLR
3.5 CONFIGURAR APACHE SOLR
3.5.1 Ficheros de configuración y esquema
3.5.2 Proceso de indexación
3.5.3 Indexación de datos con SimplePostTool
3.5.4 Esquema administrado en Apache Solr
3.5.5 Añadir información al índice
3.6 BÚSQUEDA DE DOCUMENTOS
3.6.1 Usar la API REST
3.6.2 Consultas básicas de Solr
3.6.3 Componente stats (estadísticas)
3.7 CONSULTAS AVANZADAS DE SOLR
3.7.1 Paginación y clasificación
3.7.2 Navegación facetada en Solr
3.7.3 Búsqueda de facetas en Solr
3.8 COMPONENTES DE UNA PETICIÓN EN SOLR
3.8.1 Controladores Request Handler
3.9 ANALIZADORES EN APACHE SOLR
3.9.1 Definir campos personalizados
3.9.2 Configuración de los tipos de campos
3.9.3 Propiedad score
3.10 MONITORIZACIÓN DEL RENDIMIENTO DE APACHE SOLR
3.10.1 Página de plugins/estadísticas de Apache Solr
3.11 EJECUCIÓN EN MODO CLOUD
3.11.1 Terminología usada en SolrCloud
3.11.2 SolrCloud
3.11.3 Ejecutar SolrCloud
3.11.4 Indexación distribuida
3.11.5 Ventajas de SolrCloud
3.12 ARRANCAR APACHE SOLR DESDE DOCKER
3.13 INTERACTUAR CON SOLR DESDE JAVA
3.13.1 Añadir Solrj a un proyecto Maven
3.13.2 Conexión con el servidor Solr desde Java
3.14 CRAWLING CON APACHE NUTCH Y CONEXIÓN CON APACHE SOLR
3.15 CONCLUSIONES DE APACHE SOLR
Capítulo 4. ELASTICSEARCH
4.1 INTRODUCCIÓN A ELASTICSEARCH
4.1.1 Ventajas de ElasticSearch sobre Apache Solr
4.2 USO DE ELASTICSEARCH PARA PROYECTOS DE BIG DATA
4.3 ARQUITECTURA DE ELASTICSEARCH
4.3.1 Nodos en ElasticSearch
4.4 ELASTICSEARCH COMO SOLUCIÓN DISTRIBUIDA
4.5 FRAGMENTOS Y RÉPLICAS EN ELASTICSEARCH
4.6 INSTALACIÓN DE ELASTICSEARCH
4.7 CREAR UN ÍNDICE EN ELASTICSEARCH
4.8 API REST DE ELASTICSEARCH
4.8.1 Mapping o estructura de los datos del índice
4.8.2 Recuperar parte de un documento
4.8.3 Asignar un mapeo a un índice
4.8.4 Query DSL (solicitudes DSL)
4.8.5 Búsquedas en ElasticSearch
4.8.6 La consulta multi_match
4.8.7 Navegación facetada en ElasticSearch
4.8.8 Agregaciones en documentos
4.8.9 Autocompletado en ElasticSearch
4.8.10 Analizadores en ElasticSearch
4.9 RELEVANCIA DE DOCUMENTOS EN ELASTICSEARCH
4.9.1 Puntuación y relevancia de los documentos
4.9.2 Mejorar la relevancia de los resultados de búsqueda
4.10 ESTADÍSTICAS E INFORMACIÓN SOBRE EL CLÚSTER, ÍNDICES Y NODOS. 4.10.1 Estado del clúster
4.10.2 Métricas del clúster
4.10.3 Estadísticas de los índices
4.11 HERRAMIENTAS DE MONITORIZACIÓN EN ELASTICSEARCH
4.11.1 ElasticSearch Head
4.11.2 ElasticSearch query client
4.11.3 Cerebro
Capítulo 5. CLIENTES ELASTICSEARCH
5.1 CLIENTES DE CONEXIÓN EN JAVA
5.2 CONEXIÓN AL CLÚSTER DE ELASTICSEARCH
5.3 GESTIONAR ÍNDICES
5.4 INDEXACIÓN DE DOCUMENTOS EN EL ÍNDICE
5.5 BÚSQUEDA DE DOCUMENTOS EN EL ÍNDICE
5.6 INTEGRACIÓN CON SPRING DATA
5.7 SEGURIDAD EN ELASTICSEARCH
5.8 CONCLUSIONES DE ELASTICSEARCH
Capítulo 6. VISUALIZACIÓN DE DATOS CON KIBANA
6.1 INTRODUCCIÓN A KIBANA
6.2 STACK ELK
6.2.1 Principales usos de ELK
6.2.2 Stack ELK en contenedores Docker
6.3 INSTALACIÓN DE KIBANA
6.4 LOGSTASH
6.4.1 Instalación de LogStash
6.4.2 Configuración de LogStash
6.4.3 Otros servicios de Elastic
6.5 MONITORIZACIÓN DE LOGSTASH DESDE KIBANA
6.6 SEGURIDAD EN KIBANA
Capítulo 7. MOTORES DE BÚSQUEDA CON PYTHON
7.1 CONECTANDO CON SOLR DESDE PYTHON
7.2 INTEGRACIÓN DE ELASTICSEARCH CON PYTHON
7.2.1 Crear un índice e insertar documentos usando Python
7.2.2 Realizar búsquedas usando Python
7.3 CONSULTAR ELASTICSEARCH A TRAVÉS DE LA API REST EN PYTHON
7.4 OPTIMIZAR UN ÍNDICE EN ELASTICSEARCH
7.5 INDEXAR DOCUMENTACIÓN DE DJANGO
7.6 WHOOSH COMO MOTOR DE BÚSQUEDA EN PYTHON
7.6.1 Whoosh schema
7.6.2 Realizar búsquedas en Whoosh y scoring
7.7 DJANGO-HAYSTACK
7.7.1 Integrar haystack en una aplicación Django
Capítulo 8. GLOSARIO DE TÉRMINOS