検索リクエストで OpenSearch のアルゴリズム機能を使用するには、SDK for Java を通じて各アルゴリズムモジュールが必要とするカスタムパラメーターを渡します。このトピックでは、各アルゴリズムモジュールのパラメーターをリストし、コード内での設定方法を説明します。
パラメーターと設定箇所
OpenSearch のアルゴリズムモジュールは、検索リクエストに設定するカスタムパラメーターから入力を読み取ります。このトピックのすべての検索リクエストは同じパターンに従います。SearchParams オブジェクトを作成し、パラメーターを Map<String, String> に格納し、setCustomParam を呼び出してマップを適用し、searcherClient.execute でクエリを実行します。マップに格納するエントリのみがモジュールごとに異なります。
次の表は、アルゴリズムモジュールで使用されるカスタムパラメーターと、各パラメーターを含むリクエストについて説明します。
| パラメーター | 説明 | リクエスト |
raw_query |
元の検索クエリ文字列。 | 検索リクエスト (カスタムパラメーターとして)。 |
user_id |
ユーザー ID。 | 検索リクエスト (カスタムパラメーターとして)、または SuggestParams による検索候補リクエスト。 |
from_request_id |
前回の検索のリクエスト ID。 | 検索リクエスト (カスタムパラメーターとして)。 |
このパターンから逸脱するケースが 2 つあります。検索履歴を有効にするには、検索リクエストではなく、SuggestParams を使用して検索候補リクエストに user_id を設定します。Cava プラグインはカスタムパラメーターを一切使用せず、Rank オブジェクトで設定します。
このトピックのすべてのコード例は疑似コードです。... として表示されている行は、config および searcherClient オブジェクトを作成するコードを含む、省略されたコードを表します。
クエリ分析
クエリ分析は、テキストのベクトル化と固有表現抽出 (NER) を支えます。次の表は、クエリ分析が必要とするカスタムパラメーターについて説明します。
| パラメーター | 必須 | 説明 |
raw_query |
はい | テキストのベクトル化および NER モデルで使用されます。 |
検索リクエストで raw_query を設定します。

...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'OpenSearch'");
// raw_query パラメーターを設定します。
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "OpenSearch");
searchParams.setCustomParam(customParam);
// クエリを実行し、結果を SearchResult オブジェクトとして返します。
SearchResult execute = searcherClient.execute(searchParams);
...
カテゴリ予測
カテゴリ予測は、raw_query を使用して、カテゴリ予測モデルなどのアルゴリズムモデルを訓練します。次の表は、カテゴリ予測が必要とするカスタムパラメーターについて説明します。
| パラメーター | 必須 | 説明 |
raw_query |
はい | カテゴリ予測モデルの訓練に使用されます。 |
検索リクエストで raw_query を設定します。

...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'");
// raw_query パラメーターを設定します。
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
searchParams.setCustomParam(customParam);
// クエリを実行し、結果を SearchResult オブジェクトとして返します。
SearchResult execute = searcherClient.execute(searchParams);
...
検索候補
検索候補は 3 つのカスタムパラメーターを読み取ります。有効にする機能に応じて、これらを組み合わせて渡します。
| パラメーター | 必須 | 説明 |
raw_query |
はい | 検索候補での高頻度クエリを有効にします。 |
from_request_id |
いいえ | 検索候補のランキングモデルを最適化し、候補に基づく検索メトリクスの追跡を有効にします。 |
user_id |
いいえ | インテリジェントなソートを有効にするには、検索リクエストで raw_query、from_request_id と共に渡します。検索履歴を有効にするには、SuggestParams を使用して検索候補リクエストで渡します。 |
インテリジェントなソート
インテリジェントなソートを有効にするには、検索リクエストで raw_query、user_id、from_request_id を渡します。

...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'"); // 検索候補からの検索
// インテリジェントなソートを有効にするために raw_query、user_id、from_request_id を設定します。
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
customParam.put("user_id", "12345");
customParam.put("from_request_id", "159851481919726888064081");
searchParams.setCustomParam(customParam);
// クエリを実行し、結果を SearchResult オブジェクトとして返します。
SearchResult execute = searcherClient.execute(searchParams);
...
検索履歴
検索履歴は 2 つのリクエストに依存します。検索リクエストで raw_query を渡し、SuggestParams を使用して検索候補リクエストで user_id を渡します。
...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'"); // 検索候補からの検索
// 検索リクエストで raw_query を設定します。
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
searchParams.setCustomParam(customParam);
// クエリを実行し、結果を SearchResult オブジェクトとして返します。
SearchResult execute = searcherClient.execute(searchParams);
...
// 検索履歴を有効にするために、検索候補リクエストで user_id を設定します。
SuggestParams suggestParams = new SuggestParams();
suggestParams.setUserId("12345");
トレンド検索とヒントワード
トレンド検索とヒントワードは、raw_query を使用して、トレンド検索モデルやヒントモデルなどのアルゴリズムモデルを訓練します。ランキングを改善するには from_request_id を渡します。ガイダンスメトリクスを収集するには、from_request_id と user_id の両方を渡します。
| パラメーター | 必須 | 説明 |
raw_query |
はい | トレンド検索およびヒントモデルの訓練に使用されます。 |
from_request_id |
いいえ | トレンド検索およびヒントのランキングを改善し、トレンド検索とヒントに基づく検索メトリクスの追跡を有効にします。 |
user_id |
いいえ | トレンド検索とヒントに基づく検索メトリクスの追跡を有効にするには、from_request_id と共に渡します。 |
検索リクエストでパラメーターを設定します。

...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("default:'apple'");
// raw_query、user_id、from_request_id を設定します。
Map<String, String> customParam = new HashMap<>();
customParam.put("raw_query", "apple");
customParam.put("user_id", "12345");
customParam.put("from_request_id", "160851481919726888064913");
searchParams.setCustomParam(customParam);
// クエリを実行し、結果を SearchResult オブジェクトとして返します。
SearchResult execute = searcherClient.execute(searchParams);
...
Cava プラグイン
Cava プラグインは、Cava スクリプトを使用してカスタムの二段階ランキングポリシーを適用します。このトピックの他のアルゴリズムモジュールとは異なり、カスタムパラメーターは使用しません。Rank オブジェクトにスクリプト名とソートタイプを設定し、そのオブジェクトを検索リクエストに適用します。
| パラメーター | 必須 | 説明 |
| Cava スクリプト名 | はい | 二段階ランキングで呼び出す Cava スクリプトの名前。setSecondRankName を呼び出して設定します。 |
| ソートタイプ | はい | ランキング方法。Cava スクリプトベースのランキングを使用するには、setSecondRankType を呼び出して RankType.CAVA_SCRIPT に設定します。 |
ランキングポリシーを構成し、検索リクエストに適用します。

...
// SearchParams オブジェクトを作成します。
SearchParams searchParams = new SearchParams(config);
...
// Rank オブジェクトを作成し、Cava スクリプトベースのランキングを構成します。
Rank rank = new Rank();
rank.setSecondRankName("test_cava");
rank.setSecondRankType(RankType.CAVA_SCRIPT);
// ランキングポリシーを検索リクエストに適用します。
searchParams.setRank(rank);