DESARROLLO DE MOTORES DE BÚSQUEDA
UTILIZANDO HERRAMIENTAS OPEN SOURCE
Análisis y desarrollo con Apache Lucene, Solr y ElasticSearch
José Manuel Ortega Candel
DESARROLLO DE MOTORES DE BÚSQUEDA
UTILIZANDO HERRAMIENTAS OPEN SOURCE
Análisis y desarrollo con Apache Lucene, Solr y ElasticSearch
José Manuel Ortega Candel
Desarrollo de motores de búsqueda utilizando herramientas open source
© 2021 José Manuel Ortega Candel
Primera edición, 2021
© 2021 MARCOMBO, S. L.
www.marcombo.com
Diseño de cubierta: ENEDENÚ DISEÑO GRÁFICO
Maquetación: D. Márquez
Corrección: Nuria Barroso y Anna Alberola
Directora de producción: M. aRosa Castillo Producción del ePub: booqlab
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».
ISBN: 978-84-267-3336-8
Este libro va dedicado a aquellos que me han seguido, me siguen y me seguirán, no importa cuál sea el camino escogido, en algún lugar nos encontraremos.
INTRODUCCIÓN INTRODUCCIÓN Este libro está especialmente pensado para perfiles con conocimientos previos en programación orientada a objetos, principalmente con los lenguajes de programación Java y Python. Va dirigido a aquellos perfiles con habilidades de programación que necesiten trabajar con motores de búsqueda open source y a quienes precisen llevar a cabo tareas orientadas a la extracción, procesamiento y manipulación de grandes volúmenes de datos no estructurados. Analizaremos los principales motores de búsqueda de código abierto, como Apache Lucene, Solr y ElasticSearch . Este último es uno de los motores de búsqueda open source para Big Data con mayor crecimiento en la industria. Se caracteriza por sus grandes capacidades de flexibilidad, velocidad, escalado y herramientas de soporte asociadas, y recorre todo el ciclo de trabajo desde la construcción de los procesos de extracción e incorporación de datos hasta el trabajo de análisis y monitorización mediante herramientas de búsqueda y visualización en tiempo real con herramientas como Kibana . A lo largo del libro, el lector encontrará ejemplos de código fuente en los lenguajes de programación Java y Python. Los scripts y proyectos implementados se pueden encontrar en el repositorio de GitHub: https://github.com/Marcombo/motores_busqueda_open_source A partir del capítulo 2 , se recomienda al lector seguir los ejemplos prácticos del libro junto con el código fuente que se puede encontrar en el repositorio de GitHub, con el objetivo de practicar los conceptos que se analizan de forma teórica. En dicho repositorio también hallará instrucciones de instalación del entorno y de las principales herramientas a nivel de desarrollo que se utilizan a lo largo del libro.
CAPÍTULO 1 Capítulo 1 INTRODUCCIÓN A LOS MOTORES DE BÚSQUEDA En la actualidad, el empleo de motores de búsqueda se ha extendido de forma generalizada. Esto se debe principalmente a la proliferación de sitios web, a la evolución de los sistemas y a las necesidades de compartir documentos y realizar búsquedas en un mundo globalizado y digitalmente conectado. Cabe destacar que los motores de búsqueda se encuentran muy de moda en la actualidad, no solamente por su gran éxito en la red y por su capacidad para indexar documentos, sino también por su utilización en el mundo de las redes sociales y en las modernas técnicas y herramientas de Big Data. Los motores de búsqueda solucionan la mayoría de los problemas que se presentan a la hora de realizar una búsqueda con una cantidad elevada de datos, y permiten obtener resultados relevantes para el usuario mediante algoritmos de ordenación. En la actualidad, cuando se habla de motor de búsqueda, se tiende a pensar en la consulta web. En general, el impacto que ha supuesto la creación de Internet, junto con la necesidad de los usuarios de compartir información, ha llevado a la inevitable búsqueda de herramientas que faciliten el proceso de clasificación de documentos conforme a las necesidades del usuario. Además, la creciente cantidad de datos que encontramos en Internet necesita ser estructurada y clasificada de algún modo que permita su interpretación. En esencia, esta es la misión de un motor de búsqueda: permitir a los usuarios acceder, a través de un conjunto de palabras clave, a la información que desean, intentando presentar en primer término los datos más relevantes para el usuario. Sin embargo, los motores de búsqueda no se emplean únicamente en Internet. Aunque ese fuera el origen de su nacimiento, en la actualidad se han convertido en poderosas herramientas para aportar soluciones de negocio (por ejemplo, para búsquedas internas en la documentación de las empresas, o para situaciones que requieran localizar información dentro de un gran volumen de datos). De esta manera, los motores de búsqueda se han convertido en algo intrínseco en nuestro día a día. Es por ello que realizar un estudio analizando las semejanzas y diferencias entre diferentes motores de búsqueda puede resultar muy interesante. Entre los principales objetivos de este capítulo podemos destacar: • Comprender la estructura y naturaleza de un motor de búsqueda y la importancia de los sistemas de búsqueda y recuperación de la información para su implementación. • Conocer las necesidades típicas que se resuelven mediante motores de búsqueda. • Conocer los principales motores de búsqueda que podemos encontrar en el mercado.
INTRODUCCIÓN A LOS MOTORES DE BÚSQUEDA Capítulo 1 INTRODUCCIÓN A LOS MOTORES DE BÚSQUEDA En la actualidad, el empleo de motores de búsqueda se ha extendido de forma generalizada. Esto se debe principalmente a la proliferación de sitios web, a la evolución de los sistemas y a las necesidades de compartir documentos y realizar búsquedas en un mundo globalizado y digitalmente conectado. Cabe destacar que los motores de búsqueda se encuentran muy de moda en la actualidad, no solamente por su gran éxito en la red y por su capacidad para indexar documentos, sino también por su utilización en el mundo de las redes sociales y en las modernas técnicas y herramientas de Big Data. Los motores de búsqueda solucionan la mayoría de los problemas que se presentan a la hora de realizar una búsqueda con una cantidad elevada de datos, y permiten obtener resultados relevantes para el usuario mediante algoritmos de ordenación. En la actualidad, cuando se habla de motor de búsqueda, se tiende a pensar en la consulta web. En general, el impacto que ha supuesto la creación de Internet, junto con la necesidad de los usuarios de compartir información, ha llevado a la inevitable búsqueda de herramientas que faciliten el proceso de clasificación de documentos conforme a las necesidades del usuario. Además, la creciente cantidad de datos que encontramos en Internet necesita ser estructurada y clasificada de algún modo que permita su interpretación. En esencia, esta es la misión de un motor de búsqueda: permitir a los usuarios acceder, a través de un conjunto de palabras clave, a la información que desean, intentando presentar en primer término los datos más relevantes para el usuario. Sin embargo, los motores de búsqueda no se emplean únicamente en Internet. Aunque ese fuera el origen de su nacimiento, en la actualidad se han convertido en poderosas herramientas para aportar soluciones de negocio (por ejemplo, para búsquedas internas en la documentación de las empresas, o para situaciones que requieran localizar información dentro de un gran volumen de datos). De esta manera, los motores de búsqueda se han convertido en algo intrínseco en nuestro día a día. Es por ello que realizar un estudio analizando las semejanzas y diferencias entre diferentes motores de búsqueda puede resultar muy interesante. Entre los principales objetivos de este capítulo podemos destacar: • Comprender la estructura y naturaleza de un motor de búsqueda y la importancia de los sistemas de búsqueda y recuperación de la información para su implementación. • Conocer las necesidades típicas que se resuelven mediante motores de búsqueda. • Conocer los principales motores de búsqueda que podemos encontrar en el mercado.
Читать дальше