Desarrollo de motores de búsqueda utilizando herramientas open source. Jose Manuel Ortega Candel
rel="nofollow" href="#ulink_587fcb20-0fbb-587f-96bf-73b9989d937a">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.2 Realizar búsquedas en Whoosh y scoring
7.7.1 Integrar haystack en una aplicación Django
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
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.
1.1 DEFINICIÓN DE MOTORES DE BÚSQUEDA
En la actualidad, para agilizar el tiempo de respuesta en el proceso de búsqueda, se hace uso de motores de búsqueda que suelen utilizar palabras clave y metadatos que provienen de las mismas páginas para, de esta forma, obtener un vocabulario y mejorar la búsqueda en el sitio.
Los motores de búsqueda han recorrido un largo camino desde sus primeros prototipos, y su desarrollo ha llevado a la investigación de múltiples tecnologías de búsqueda, que se desarrollaron a partir de diferentes motores. Alta Vista fue el primer motor de búsqueda para procesar las consultas en lenguaje natural; y Lycos fue uno de los primeros motores de búsqueda en implementar un sistema de categorización a partir de la relevancia de las palabras, teniendo en cuenta los prefijos en palabras clave y la proximidad de las palabras encontradas.
Un motor de búsqueda es un software o una secuencia de comandos que busca en documentos o en bases de datos las palabras clave y devuelve los resultados de todos los archivos que contengan esas palabras. Hoy en día, existen muchos motores de búsqueda diferentes disponibles en Internet, cada uno con sus propias habilidades y características. El primer motor de búsqueda desarrollado fue Archie (https://es.wikipedia.org/wiki/Archie_(Buscador_FTP)), que fue utilizado para buscar archivos de forma similar al protocolo FTP. Hoy en día, el motor de búsqueda más popular es Google.
Al final, un motor de búsqueda como Google es un buscador jerárquico que