Genetic Ranker es un marco que utiliza la potencia de los algoritmos genéticos para encontrar pesos de búsqueda óptimos para las consultas Elasticsearch o Solr.
Encontrar pesos de búsqueda óptimos para los campos es un proceso de larga duración e ingrato. Imagine un índice con millones de documentos, cada uno con decenas de campos y cientos de consultas que deben probarse para garantizar cuán buena es la configuración real. Su trabajo es determinar qué tan importantes son los campos particulares. Puede llevar toda la vida.
Escribí una publicación sobre eso en mi blog, eche un vistazo si necesita más información sobre este proceso.
En primer lugar, es fácil definir el problema como un conjunto de pesos numéricos que se pueden alterar durante el procesamiento. Las partes de mutación, crossover y reproducción del algoritmo se pueden hacer fácilmente en los números.
En segundo lugar, los algoritmos genéticos pueden preservar soluciones prometedoras , incluso sin una comprensión real de un problema. Se mantendrán mejores especies (individuos) y serán antepasados para otras mejores.
En tercer lugar, debido a las piezas de mutación y crossover, el algoritmo agrega un poco de aleatoriedad al proceso . Puede ser útil encontrar la mejor respuesta, incluso si lo real es bueno.
Más sobre eso, nuevamente, aquí.
Para iniciar GeneticRanker, debe ejecutar un archivo rk ranker.py. El proyecto contiene todos los datos necesarios para demostrar un caso de uso simple.
En Ranker.py debe definir cuántos campos desea usar ( Gene_Size en Ranker ). Luego especifique esos campos en la clase de evaluación ( campos ).
En Queries.csv, debe especificar los casos de uso que desea probar. El formato es:
[consulta], [document_id]: [esperado_position]: [Good_enough_position]
En Properties.ini puede definir qué motor de búsqueda desea usar: Elasticsearch o Solr. Las consultas deben definirse en Essearcher.py y SolrSearcher.py respectivamente.
Imagine que es un ingeniero de búsqueda que tiene que encontrar pesos óptimos para los campos sobre los que se ejecutan las consultas. Lo único que tiene es que las consultas de archivo.csv, que contienen consultas y documentos en el índice. Antes de ejecutar GeneticRanker, tome un tiempo leer estos archivos CSV y analizar documentos de Queries-es.txt .
Solo hay 8 documentos y 10 consultas, pero le garantizo que puede pasar un tiempo en esta tarea.
En el directorio de datos hay archivos que contienen documentos. Puede usar cualquier forma de ElasticSearch y Solr para indexarlos, pero para la primera herramienta Postman y para el panel de administración Solr posterior.
Tener el servidor en funcionamiento debería ser suficiente para ejecutar un script y ver los resultados.
almohadilla elasticsearch pysolr
Debe verificar sus licencias y decidir si desea usarlas en su software. El algoritmo genético se implementa utilizando el marco DEAP.
Cada caso de uso puede necesitar alteración de los valores de algoritmo genético o algoritmo en sí, pero la configuración propuesta debe ser un buen punto de partida. ¡Feliz usando!