O Genético Ranker é uma estrutura usando o poder dos algoritmos genéticos para encontrar pesos ideais de pesquisa para o Elasticsearch ou Solr consultas.
Encontrar pesos ideais de pesquisa para campos é um processo duradouro e ingrato. Imagine um índice com milhões de documentos, todos com dezenas de campos e centenas de consultas que devem ser testadas para garantir a boa configuração real. Seu trabalho é determinar quão importantes são os campos específicos. Pode levar uma vida inteira.
Escrevi um post sobre isso no meu blog, dê uma olhada se precisar de mais informações sobre esse processo.
Em primeiro lugar, é fácil definir o problema como um conjunto de pesos numéricos que podem ser alterados durante o processamento. As partes de mutação, crossover e reprodução do algoritmo podem ser facilmente feitas nos números.
Em segundo lugar, os algoritmos genéticos são capazes de preservar soluções promissoras , mesmo sem o entendimento real de um problema. As melhores espécies (indivíduos) serão mantidas e serem ancestrais para as ainda melhores.
Em terceiro lugar, devido a partes de mutação e cruzamento, o algoritmo acrescenta um pouco de aleatoriedade ao processo . Pode ajudar a encontrar a melhor resposta, mesmo que seja real.
Mais sobre isso, novamente, aqui.
Para iniciar o GeneticRanker, você precisa executar um arquivo ranker.py. O projeto contém todos os dados necessários para demonstrar um caso de uso simples.
Em Ranker.py, você deve definir quantos campos deseja usar ( gene_size no ranker ). Em seguida, especifique esses campos na classe de avaliador ( campos ).
Em consultas.csv, você precisa especificar casos de uso que deseja testar. O formato é:
[Query], [Document_id]: [Espera
No Properties.ini, você pode definir qual mecanismo de pesquisa deseja usar: Elasticsearch ou Solr. As consultas devem ser definidas no EsseCHER.PY e SOLRSEARCHER.PY , respectivamente.
Imagine que você é um engenheiro de pesquisa que precisa encontrar pesos ideais para os campos nos quais as consultas são executadas. As únicas coisas que você tem são as consultas de arquivo.csv, contendo consultas e documentos no índice. Antes de executar o GeneticRanker, demore um pouco para ler esses arquivos CSV e analisar documentos do Queries-es.txt .
Existem apenas 8 documentos e 10 consultas, mas garanto que você pode passar um tempo nessa tarefa.
No diretório de dados , existem arquivos que contêm documentos. Você pode usar quaisquer maneiras Elasticsearch e Solr de indexá -las, mas para o primeiro eu usei a ferramenta Postman e para o painel de administração mais tarde - Solr.
Ter o servidor em funcionamento deve ser suficiente para executar um script e ver os resultados.
DAP Elasticsearch Pysolr
Você deve verificar suas licenças e decidir se deseja usá -las em seu software. O algoritmo genético é implementado usando a estrutura DAEP.
Todo caso de uso pode precisar de alteração dos valores ou algoritmo do algoritmo genético, mas a configuração proposta deve ser um bom ponto de partida. Feliz usando!