Genetic Rankerは、遺伝的アルゴリズムの力を使用して、ElasticSearchまたはSolRクエリの最適な検索重みを見つけるフレームワークです。
フィールドの最適な検索ウェイトを見つけることは、長期にわたる恩知らずのプロセスです。何百万ものドキュメントを備えたインデックスを想像してください。すべてのフィールド、および実際の構成の良好なものを確保するためにテストする必要がある数百のクエリを想像してください。あなたの仕事は、特定の分野がどれほど重要であるかを判断することです。一生になることがあります。
私のブログにそれについての投稿を書きました。このプロセスに関する詳細情報が必要な場合は、見てください。
まず、問題を処理中に変更できる数値のセットとして定義するのは簡単です。アルゴリズムの突然変異、クロスオーバー、繁殖部分は、数字で簡単に実行できます。
第二に、遺伝的アルゴリズムは、問題を実際に理解しなくても、有望なソリューションを保存することができます。より良い種(個人)は維持され、さらに良い種の先祖になります。
第三に、突然変異とクロスオーバーパーツのため、アルゴリズムはプロセスに少しランダム性を追加します。たとえ実際に良い回答を見つけるのに役立つかもしれません。
それについては、ここでも。
GeneticRankerを開始するには、ranker.pyファイルを実行する必要があります。プロジェクトには、単純なユースケースを示すために必要なすべてのデータが含まれています。
ranker.pyでは、使用したいフィールドの数を定義する必要があります( gene_size in ranker )。次に、評価者クラス(フィールド)でこれらのフィールドを指定します。
queries.csvでは、テストするユースケースを指定する必要があります。形式は次のとおりです。
[query]、[document_id]:[expection_position]:[good_enough_position]
Properties.iniでは、使用する検索エンジン:ElasticSearchまたはSolrを定義できます。クエリは、それぞれessearcher.pyとsolrsearcher.pyで定義する必要があります。
あなたがクエリが実行されるフィールドに最適な重みを見つけなければならない検索エンジニアであると想像してください。あなたが持っているのは、インデックスにクエリとドキュメントを含むファイルqueries.csvだけです。 GeneticRankerを実行する前に、これらのCSVファイルを読み取り、 Queries-ES.TXTからドキュメントを分析するのに時間がかかります。
8つのドキュメントと10のクエリしかありませんが、このタスクにしばらく費やすことができることを保証します。
データディレクトリには、ドキュメントを含むファイルがあります。 ElasticSearchおよびSolRの方法を使用してインデックスを作成できますが、前者にはPostman Toolを使用し、後でsolr管理パネルを使用しました。
サーバーを稼働させて実行するだけで、スクリプトを実行して結果を確認するのに十分です。
deap ElasticSearch Pysolr
ライセンスを確認し、ソフトウェアで使用するかどうかを決定する必要があります。遺伝的アルゴリズムは、DEAPフレームワークを使用して実装されています。
すべてのユースケースでは、遺伝的アルゴリズム値またはアルゴリズム自体の変更が必要になる場合がありますが、提案された構成は良い出発点でなければなりません。使って幸せです!