遺傳排名者是使用遺傳算法的力量的框架,以找到用於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框架實施的。
每個用例都可能需要改變遺傳算法值或算法本身,但是提出的配置應該是一個很好的起點。快樂使用!