Inicio/Profesional/TICs y Computación/Programación/DESARROLLO DE MOTORES DE BÚSQUEDA UTILIZANDO HERRAMIENTAS OPEN SOURCE. Análisis y desarrollo con apache lucene, solr y elasticsearch

DESARROLLO DE MOTORES DE BÚSQUEDA UTILIZANDO HERRAMIENTAS OPEN SOURCE. Análisis y desarrollo con apache lucene, solr y elasticsearch

$708

Hay existencias

Autor:  ORTEGA CANDEL, José Manuel

Páginas:   330

Año:   2021

Edición:   1

Editorial:  Alfaomega –  Marcombo

Apoyos:   Web

Presentación:

E-Book:

Nivel:  

Encuadernación:  Rústica

Hay existencias

ISBN: 9786075388571 Categorías: ,

Descripción

El desarrollo de motores de búsqueda ha crecido en los últimos años gracias al uso de herramientas y frameworks open source, pues facilitan una base sobre la cual realizar nuestras aplicaciones orientadas a la extracción y búsqueda de diferentes fuentes de datos.

Si desea adquirir los conocimientos necesarios para dominar las principales herramientas open source, las librerías y los frameworks, ha llegado al libro indicado. Este manual le proporciona, desde un enfoque teórico-práctico, todos los conceptos e instrucciones que le permitirán construir desde cero motores de búsqueda utilizando los lenguajes de programación Java y Python.

Gracias a los contenidos del libro:

• Conocerá la estructura y naturaleza de un motor de búsqueda, así como la importancia de los sistemas de búsqueda y recuperación de la información.

• Aprenderá los principales motores de búsqueda open source y su funcionamiento interno.

• Dominará las diferentes herramientas para desarrollar motores de búsqueda utilizando frameworks de desarrollo dentro de los ecosistemas de programación Java y Python.

Además, con el objetivo de obtener el máximo provecho de las herramientas y facilitar el seguimiento de las prácticas del libro, en la primera página se proporciona el acceso al repositorio con el código de los ejemplos desarrollados.

Hágase con el libro y descubra las principales herramientas que todo desarrollador e ingeniero de software debe dominar para desarrollar sus propios motores de búsqueda.

INTRODUCCIÓN………………………………………………………………………………. 1
CAPÍTULO 1
INTRODUCCIÓN A LOS MOTORES DE BÚSQUEDA………………………… 3
1.1 Definición de motores de búsqueda………………………………………….. 4
1.2 ¿Por qué necesito un motor de búsqueda?………………………………… 5
1.2.1 Extracción de texto en documentos…………………………………. 5
1.2.2 Operaciones de lectura……………………………………………………. 6
1.2.3 Esquema flexible……………………………………………………………… 6
1.3 Funcionamiento de un motor de búsqueda……………………………….. 7
1.3.1 Buscadores de directorios………………………………………………… 8
1.3.2 Buscadores jerárquicos…………………………………………………….. 8
1.3.3 Spiders (arañas o crawlers)……………………………………………… 8
1.4 Proceso de indexación………………………………………………………………. 10
1.4.1 Rendimiento en la indexación de documentos………………… 10
1.4.2 Stopwords……………………………………………………………………….. 11
1.4.3 Steamming………………………………………………………………………. 11
1.5 Recuperación de la información………………………………………………… 12
1.5.1 Extracción de información………………………………………………. 14
1.5.2 Sistema de búsqueda/respuesta……………………………………….. 15
1.6 Motores de búsqueda e indexadores…………………………………………. 15
1.6.1 Lucene…………………………………………………………………………….. 17
1.6.2 Índice invertido………………………………………………………………. 19
1.6.3 Apache Solr……………………………………………………………………… 19
1.6.4 ElasticSearch…………………………………………………………………… 19
1.6.5 Otros motores de búsqueda……………………………………………… 20
1.7 Herramientas de procesamiento de lenguaje natural (PLN)…………21 CAPÍTULO 2
APACHE LUCENE……………………………………………………….. 25
2.1 Introducción a Apache Lucene………………………………………………….. 25
2.2 Módulos y funcionalidades de Apache Lucene………………………….. 28
2.3 Arquitectura de Apache Lucene………………………………………………… 31
2.3.1 Proceso de tokenización y búsqueda en Apache Lucene…… 34
2.4 Trabajar con Apache Lucene…………………………………. 36
2.4.1 Configuración del entorno………………………………………………. 36
2.4.2 Crear un índice………………………………………………………………… 40
2.4.3 Crear y escribir documentos en un índice……………………….. 43
2.5 Realizar búsquedas en Apache Lucene………………………………………. 47
2.5.1 Obtención de un IndexSearcher………………………………………. 47
2.5.2 Proceso de búsqueda con IndexSearcher………………………….. 48
2.5.3 Crear consultas con Lucene QueryParser…………………………. 49
2.5.4 Sintaxis de las consultas en Apache Lucene…………………….. 53
2.6 Búsqueda de información con Apache Lucene………………………….. 55
2.7 Búsqueda en múltiples índices de Lucene…………………………………. 58
2.8 Herramientas de administración de Lucene……………………………… 60
2.9 Herramientas de búsqueda que usan Apache Lucene………………… 61
2.9.1 Krugle……………………………………………………………………………… 61
2.9.2 Google Dataset Search……………………………………………………… 62
2.9.3 Otros repositorios y portales……………………………………………. 63
CAPÍTULO 3
APACHE SOLR…………………………………………………… 65
3.1 Introducción a Apache Solr……………………………………………………….. 65
3.2 Arquitectura de Apache Solr……………………………………………………… 67
3.3 Indexación e índice invertido en Apache Solr……………………………. 69
3.3.1 Relevancia y filtro en las búsquedas………………………………… 69
3.4 Instalación de Solr…………………………………………….. 70
3.5 Configurar Apache Solr…………………………………………….. 75
3.5.1 Ficheros de configuración y esquema………………………………. 77
3.5.2 Proceso de indexación……………………………………………………… 82
3.5.3 Indexación de datos con SimplePostTool…………………………. 84          3.5.4 Esquema administrado en Apache Solr……………………………. 88
3.5.5 Añadir información al índice…………………………………………… 90
3.6 Búsqueda de documentos…………………………………………………………. 92
3.6.1 Usar la API REST……………………………………………………………… 94
3.6.2 Consultas básicas de Solr…………………………………………………. 97
3.6.3 Componente stats (estadísticas)……………………………………… 102
3.7 Consultas avanzadas de Solr………………………………… 103
3.7.1 Paginación y clasificación………………………………………………… 103
3.7.2 Navegación facetada en Solr…………………………………………….. 105
3.7.3 Búsqueda de facetas en Solr…………………………………………….. 109
3.8 Componentes de una petición en Solr………………………………………. 114
3.8.1 Controladores Request Handler………………………………………. 114
3.9 Analizadores en Apache Solr…………………………………………………….. 116
3.9.1 Definir campos personalizados………………………………………… 117
3.9.2 Configuración de los tipos de campos……………………………… 120
3.9.3 Propiedad score……………………………………………………………….. 123
3.10 Monitorización del rendimiento de Apache Solr…………….. 124
3.10.1 Página de plugins/estadísticas de Apache Solr……………….. 124
3.11 Ejecución en modo Cloud…………………………………….. 127
3.11.1 Terminología usada en SolrCloud…………………………………… 128
3.11.2 SolrCloud………………………………………………………………………. 130
3.11.3 Ejecutar SolrCloud…………………………………………………………. 130
3.11.4 Indexación distribuida…………………………………………………… 131
3.11.5 Ventajas de SolrCloud……………………………………………………. 133
3.12 Arrancar Apache Solr desde Docker……………………………134
3.13 Interactuar con Solr desde Java……………………………….. 137
3.13.1 Añadir Solrj a un proyecto Maven………………………………….. 138
3.13.2 Conexión con el servidor Solr desde Java……………………….. 140
3.14 Crawling con Apache Nutch y conexión con Apache Solr………….. 147
3.15 Conclusiones de Apache Solr……………………………………………152
CAPÍTULO 4
ELASTICSEARCH………………………………….. 155
4.1 Introducción a ElasticSearch…………………………. 155
4.1.1 Ventajas de ElasticSearch sobre Apache Solr……………………. 159        4.2 Uso de ElasticSearch para proyectos de Big Data………….. 159
4.3 Arquitectura de ElasticSearch……………………………… 160
4.3.1 Nodos en ElasticSearch……………………………………………………. 163
4.4 ElasticSearch como solución distribuida…………………. 164
4.5 Fragmentos y réplicas en ElasticSearch……………………… 166
4.6 Instalación de ElasticSearch……………………………………. 170
4.7 Crear un índice en ElasticSearch………………………………. 174
4.8 API REST de ElasticSearch…………………………………. 176
4.8.1 Mapping o estructura de los datos del índice…………………… 184
4.8.2 Recuperar parte de un documento…………………………………… 187
4.8.3 Asignar un mapeo a un índice…………………………………………. 188
4.8.4 Query DSL (solicitudes DSL)……………………………………………. 191
4.8.5 Búsquedas en ElasticSearch…………………………………………….. 196
4.8.6 La consulta multi_match…………………………………………………. 206
4.8.7 Navegación facetada en ElasticSearch……………………………… 208
4.8.8 Agregaciones en documentos………………………………………….. 209
4.8.9 Autocompletado en ElasticSearch……………………………………. 210
4.8.10 Analizadores en ElasticSearch……………………………………….. 214
4.9 Relevancia de documentos en ElasticSearch……………………………… 216
4.9.1 Puntuación y relevancia de los documentos…………………….. 216
4.9.2 Mejorar la relevancia de los resultados de búsqueda………… 219
4.10 Estadísticas e información sobre el clúster, índices y nodos…… 222
4.10.1 Estado del clúster………………………………………………………….. 222
4.10.2 Métricas del clúster……………………………………………………….. 225
4.10.3 Estadísticas de los índices……………………………………………… 226
4.11 Herramientas de monitorización en ElasticSearch……………. 228
4.11.1 ElasticSearch Head………………………………………………………… 229
4.11.2 ElasticSearch query client……………………………………………… 233
4.11.3 Cerebro………………………………………………………………………….. 235
CAPÍTULO 5
CLIENTES ELASTICSEARCH……………………………………….. 239
5.1 Clientes de conexión en Java…………………………. 239
5.2 Conexión al clúster de ElasticSearch……………………. 242                          5.3 Gestionar índices………………………………………………………. 244
5.4 Indexación de documentos en el índice……………………………………. 246
5.5 Búsqueda de documentos en el índice………………………………………. 247
5.6 Integración con Spring Data………………………………………. 252
5.7 Seguridad en ElasticSearch……………………………………… 287
5.8 Conclusiones de ElasticSearch……………………………….. 293
CAPÍTULO 6
VISUALIZACIÓN DE DATOS CON KIBANA……………………. 295
6.1 Introducción a Kibana………………………………… 295
6.2 Stack ELK………………………………………………….. 297
6.2.1 Principales usos de ELK…………………………………………………… 298
6.2.2 Stack ELK en contenedores Docker………………………………….. 298
6.3 Instalación de Kibana………………………………………….. 301
6.4 LogStash…………………………………………………………….. 308
6.4.1 Instalación de LogStash…………………………………………………… 309
6.4.2 Configuración de LogStash………………………………………………. 310
6.4.3 Otros servicios de Elastic…………………………………………………. 317
6.5 Monitorización de LogStash desde Kibana………………………………… 318
6.6 Seguridad en Kibana…………………………………………. 321
CAPÍTULO 7
MOTORES DE BÚSQUEDA CON PYTHON……………………….. 325
7.1 Conectando con Solr desde Python…………………………………………… 325
7.2 Integración de ElasticSearch con Python…………………… 327
7.2.1 Crear un índice e insertar documentos usando Python……. 329
7.2.2 Realizar búsquedas usando Python………………………………….. 331
7.3 Consultar ElasticSearch a través de la API RESTen Python………… 341
7.4 Optimizar un índice en ElasticSearch…………………….. 350
7.5 Indexar documentación de Django……………………… 351
7.6 Whoosh como motor de búsqueda en Python…………………………… 359
7.6.1 Whoosh schema………………………………………………………………. 360
7.6.2 Realizar búsquedas en Whoosh y scoring…………………………. 362      7.7 Django-haystack……………………………………… 365
7.7.1 Integrar haystack en una aplicación Django…………………….. 366
CAPÍTULO 8
GLOSARIO DE TÉRMINOS……………………………………… 371

Información adicional

Peso .950 kg
Dimensiones 23 × 17 × 3 cm

Título

Ir a Arriba