Cava は、OpenSearch エンジンチームが低レベル仮想マシン (LLVM) プロジェクトに基づいて開発したプログラミング言語です。Cava は Java に似た構文を使用し、C++ と同等の効率的なパフォーマンスを実現できます。Cava はオブジェクト指向プログラミング言語です。Just-In-Time (JIT) コンパイルとさまざまなセキュリティチェックをサポートし、より堅牢なプログラムを実現します。Cava と OpenSearch が提供する Cava ライブラリを使用して、OpenSearch で専用のソートプラグインを設計できます。OpenSearch がサポートする式と比較して、Cava ベースのソートプラグインには次の利点があります。
より多様なカスタム設計: Cava では、より多様な構文を使用してソートプラグインをカスタマイズできます。たとえば、ビジネス要件に基づいて、for ループを使用したり、関数やクラスを定義したりできます。
メンテナンスが容易: Cava コードは式よりも理解しやすいです。したがって、Cava を使用して開発されたソートプラグインはメンテナンスが容易です。
学習が容易: Cava は Java に似た構文を使用します。Java に精通していれば、Cava を使用して簡単にソートプラグインを開発できます。これにより、学習コストが削減されます。
Cava ベースのプラグインは、排他的なアプリケーションでのみ使用できます。
Cava ベースのプラグインは、精密ソートに対してのみ有効です。
Cava の構文の詳細については、『開発者ガイド』の Cava ベースのソートプラグインに関するトピックを参照してください。
手順
ポリシーの作成: OpenSearch コンソールにログインします。左側のナビゲーションペインで、[検索アルゴリズムセンター] > [ソート設定] を選択します。[ポリシー管理] ページで、[作成] をクリックします。[ポリシーの作成] ウィザードの [基本情報] ステップで、[スコープ] ドロップダウンリストから [精密ソート] を選択し、[タイプ] ドロップダウンリストから [Cava スクリプト] を選択します。
スクリプトファイルの追加: [ソート設定] ステップで、スクリプトファイルを追加し、コンソールで Cava スクリプトを編集できます。または、ローカルスクリプトファイルを JSON 形式でアップロードすることもできます。
スクリプトのコンパイルと公開: スクリプトファイルを編集した後、[コンパイル] をクリックしてすべてのスクリプトファイルをコンパイルします。コンパイルステータスは [コンパイル] ボタンの下に表示されます。コンパイルが完了したら、[公開] をクリックしてスクリプトファイルを公開します。公開済みのスクリプトファイルは変更できません。
ソート効果をテストする: 作成したポリシーの検索テストページで、
second_rank_name
パラメーターをポリシーの名前に設定し、second_rank_type
パラメーターを cava_script に設定します。
次のサンプルコードは、Java 用 SDK を使用する場合の Cava ベースのソートポリシーの使用方法の例を示しています。
...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
...
// Rank オブジェクトを作成します。
Rank rank=new Rank();
// 呼び出す Cava スクリプトを指定します。
rank.setSecondRankName("Cava スクリプト名");
// ソートタイプを Cava スクリプトに設定します。
rank.setSecondRankType(RankType.CAVA_SCRIPT);
// SearchParams オブジェクトにソートポリシーを追加します。
searchParams.setRank(rank);
共通パラメーターの取得
ベクトルインデックスを使用してスコアを取得します。
import com.aliyun.opensearch.cava.features.similarity.ProximaScore;
ProximaScore _proximaScoreVector;
_proximaScoreVector=ProximaScore.create (params, "{{indexes.vector_index}}"); // ベクトルインデックスの名前。
float proximaScoreVector = _proximaScoreVector.evaluate(params);
使用上の注意
Cava ベースのプラグインは、排他的なアプリケーションでのみ使用できます。
1 つの Cava スクリプトファイルのサイズは 10 KB を超えることはできません。1 つの Cava ベースのソートポリシーには最大 5 つのスクリプトファイルを追加でき、1 つのアプリケーションには最大 50 の Cava ベースのソートポリシーを作成できます。
公開済みの Cava スクリプトは変更できません。公開済みの Cava スクリプトを変更する場合は、[ポリシー管理] ページで Cava スクリプトが追加されているポリシーを複製して別のポリシーを作成できます。
SDK で設定された Cava スクリプトは公開する必要があります。未公開の Cava スクリプトは、検索テストでのみ使用できます。