遗传排名者是使用遗传算法的力量的框架,以找到用于Elasticsearch或Solr查询的最佳搜索权重。
寻找最佳的搜索权重是持久的和忘恩负义的过程。想象一下一个具有数百万个文档的索引,每个字段和数百个字段,以及应测试的数百个查询,以确保实际配置的良好。您的工作是确定特定领域的重要性。可能需要一生。
我在博客上写了一篇有关该文章的文章,如果您需要有关此过程的更多信息,请看一下。
首先,很容易将问题定义为可以在处理过程中可以更改的数字权重集。算法的突变,交叉和繁殖部分可以轻松地在数字上完成。
其次,遗传算法也能够保留有希望的解决方案,即使没有对问题的实际理解。更好的物种(个人)将被保留,并成为更好的物种。
第三,由于突变和跨界部分,算法为过程增加了一些随机性。即使实际情况很好,也可能有助于找到最佳答案。
又有更多关于此的信息。
要启动Geneticranker,您需要运行canker.py文件。项目包含证明简单用例所需的所有数据。
在ranker.py中,您应该定义要使用多少个字段( gene_size in Ranker中)。然后在评估器类(字段)中指定这些字段。
在QUERIE.CSV中,您需要指定要测试的用例。格式是:
[QUERY],[document_id]:[endured_position]:[good_enough_position]
在properties.ini中,您可以定义要使用的搜索引擎:Elasticsearch或Solr。查询应分别在essearcher.py和solrsearcher.py中定义。
想象一下,您是一名搜索工程师,他必须找到对查询进行查询的字段的最佳权重。您唯一拥有的是file queries.csv ,索引中包含查询和文档。在运行Geneticranker之前,需要一段时间才能读取这些CSV文件并分析来自Queries-es.txt的文档。
只有8个文档和10个查询,但我保证您可以在此任务上花费一段时间。
在数据目录中有包含文档的文件。您可以使用任何Elasticsearch和Solr方法来索引它们,但是对于以前的我使用了Postman工具,以及以后的Solr Admin面板。
让服务器启动和运行应该足以运行脚本并查看结果。
Deap Elasticsearch Pysolr
您应该检查他们的许可证,并确定是否要在软件中使用它们。遗传算法是使用DEAP框架实施的。
每个用例都可能需要改变遗传算法值或算法本身,但是提出的配置应该是一个很好的起点。快乐使用!