Genetic Ranker - это структура, использующая силу генетических алгоритмов для поиска оптимальных весов поиска для Elasticsearch или Solr -запросов.
Поиск оптимальных весов поиска для полей является длительным и неблагодарным процессом. Представьте себе индекс с миллионами документов, каждый с десятками полей и сотнями запросов, которые должны быть проверены, чтобы обеспечить хорошую фактическую конфигурацию. Ваша задача - определить, насколько важны конкретные области. Это может занять всю жизнь.
Я написал пост об этом в своем блоге, посмотрите, если вам нужна дополнительная информация об этом процессе.
Во -первых, легко определить проблему как набор числовых весов , которые могут быть изменены при обработке. Мутация, кроссовер и воспроизводственные части алгоритма могут быть легко выполнены по числам.
Во -вторых, генетические алгоритмы способны сохранять многообещающие решения , даже без фактического понимания проблемы. Лучшие виды (индивидуумы) будут храниться и быть предками для еще лучших.
В -третьих, из -за мутации и кроссоверов, алгоритм добавляет немного случайности к процессу . Это может помочь найти лучший ответ, даже если настоящий хороший.
Подробнее об этом, опять же, здесь.
Чтобы запустить GeneticRanker, вам нужно запустить файл ranker.py. Проект содержит все данные, необходимые для демонстрации простого варианта использования.
В Ranker.py вы должны определить, сколько полей вы хотите использовать ( gene_size в Ranker ). Затем укажите эти поля в классе оценщика ( поля ).
В Queries.csv вам необходимо указать варианты использования, которые вы хотите проверить. Формат:
[Query], [document_id]: [weder_position]: [good_enough_position]
В Properties.ini вы можете определить, какую поисковую систему вы хотите использовать: Elasticsearch или Solr. Запросы должны быть определены в Essearcher.py и Solrsearcher.py соответственно.
Представьте, что вы поисковый инженер, который должен найти оптимальные веса для полей, на которых выполняются запросы. Единственное, что у вас есть, это файл Queries.csv , содержащий запросы и документы в индексе. Прежде чем запустить GeneticRanker, потребуется некоторое время, чтобы прочитать этот файл CSV и проанализировать документы из Queries-es.txt .
Есть только 8 документов и 10 запросов, но я гарантирую, что вы можете потратить некоторое время на эту задачу.
В каталоге данных есть файлы, содержащие документы. Вы можете использовать любые способы Elasticsearch и Solr для их индексации, но для первого я использовал инструмент Postman и для более поздней - Solr Admin Panel.
Наличие сервера и запуска должно быть достаточно, чтобы запустить сценарий и увидеть результаты.
депо Elasticsearch писолр
Вы должны проверить их лицензии и решить, хотите ли вы использовать их в своем программном обеспечении. Генетический алгоритм реализуется с использованием Deap Framework.
Каждый вариант использования может потребовать изменения значений генетического алгоритма или самого алгоритма, но предложенная конфигурация должна быть хорошей отправной точкой. Счастлив!