このトピックでは、OpenSearch エンジンチームが低レベル仮想マシン (LLVM) プロジェクトに基づいて開発したプログラミング言語である Cava について説明します。Cava は Java に似た構文を使用し、C++ と同等の効率的なパフォーマンスを実現できます。Cava はオブジェクト指向プログラミング言語です。Just-In-Time (JIT) コンパイルとさまざまなセキュリティチェックをサポートし、より堅牢なプログラムを実現します。Cava と OpenSearch が提供する Cava ライブラリを使用して、OpenSearch で専用のソートプラグインを設計できます。Cava ベースのソートプラグインには、OpenSearch がサポートする式と比較して、次の利点があります。
カスタマイズ機能の向上: Cava は、for ループ、関数定義、クラス定義など、式よりも多くの構文機能をサポートしています。これらの機能を使用して、ビジネス要件に基づいてソートプラグインをカスタマイズできます。
メンテナンスの容易化: Cava コードは式よりも理解しやすいです。したがって、Cava を使用して開発されたソートプラグインは、メンテナンスが容易です。
学習の容易化: Cava は Java に似た構文を使用しているため、学習コストが削減されます。Java に精通していれば、Cava を使用して簡単にソートプラグインを開発できます。
OpenSearch は、専用アプリケーションに対してのみ Cava ベースのプラグインをサポートしています。
Cava ベースのプラグインは、精密ソートに対してのみ有効です。
Cava の構文の詳細については、『開発者ガイド』の Cava ベースのソートプラグインに関するトピックを参照してください。
手順
ポリシーの作成: ポリシー管理ページで、[作成] をクリックします。ポリシーの作成ページで、[スコープ] ドロップダウンリストから [精密ソート] を選択し、[タイプ] ドロップダウンリストから [Cava スクリプト] を選択します。

スクリプトファイルの追加: スクリプトファイルを追加して、コンソールで Cava スクリプトを編集できます。または、ローカルのスクリプトファイルを JSON 形式でアップロードすることもできます。

スクリプトのコンパイルと公開: スクリプトファイルの編集後、[コンパイル] をクリックしてすべてのスクリプトファイルをコンパイルします。コンパイルの状態は [コンパイル] ボタンの下に表示されます。コンパイルが完了したら、[公開] をクリックしてスクリプトファイルを公開します。公開済みのスクリプトファイルは変更できません。

ソートパフォーマンスのテスト: 作成したポリシーの検索テストページで、
second_rank_nameパラメーターをポリシーの名前に設定し、second_rank_typeパラメーターを cava_script に設定します。

次のコードブロックは、パラメーター設定を示しています (この例では Java を使用しています):
...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
...
// Rank オブジェクトを作成します。
Rank rank=new Rank();
// 呼び出される Cava スクリプトを設定します。
rank.setSecondRankName("Cava スクリプト名");
// ソートタイプを Cava スクリプトに設定します。
rank.setSecondRankType(RankType.CAVA_SCRIPT);
// ソートポリシーをパラメーターオブジェクトに追加します。
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);使用上の注意
OpenSearch は、専用アプリケーションに対してのみ Cava ベースのプラグインをサポートしています。
1 つの Cava スクリプトファイルは 10 KB を超えることはできません。1 つの Cava ソートポリシーに対して最大 5 つのスクリプトファイルを作成でき、1 つのアプリケーションインスタンスに対して最大 50 の Cava ソートポリシーを作成できます。
公開済みの Cava スクリプトは変更できません。Cava ベースのソートポリシーを変更する場合は、ポリシー管理ページでソートポリシーを複製してから、Cava スクリプトを変更できます。
SDK で設定された Cava スクリプトは公開する必要があります。未公開の Cava スクリプトは、検索テストでのみ使用できます。