トレンド検索とヒントワードは、検索ボックスの近くに表示され、ユーザーが入力し終える前に、関連性の高いクエリへと誘導します。オペレーターにとっては、関心トレンドを表面化させ、運用戦略を通じて検索行動を形成する機会を生み出します。
仕組み
OpenSearch は、トレンド検索と検索ヒントのレコメンデーションを3段階のパイプラインで生成します。
収集 — システムは過去の検索ログから検索クエリをプルします。
raw_queryパラメーターで送信されたクエリのみがカウントされます。raw_queryの値は、結果を返す独立しており、重複していないクエリである必要があります。ランク付け — クエリは頻度によってランク付けされます。レコメンデーションインターフェイスは、デフォルトで過去14日間のデータを使用します。モデルが作成されると、システムは毎日自動的に再トレーニングします。
提供 — API または SDK を呼び出して、ランク付けされたレコメンデーションを取得します。デフォルトでは、リクエストごとに10件のトレンド検索と3件のヒントワードが返されます。
トップ検索おすすめインターフェイスとコンソール内のトップ検索リストでは、使用されるデータ範囲が異なります。おすすめインターフェイスは、過去14日間のみおよびraw_query クエリのみを対象としています。一方、コンソールのリストにはデフォルトインデックスからのクエリが含まれ、結果がゼロのクエリは除外されません。基本概念
トレンド検索モデル — クエリを人気スコアでランク付けし、リストとして返します。これは、検索ボックスの近くにトレンド検索を表示するために使用します。
ヒントワードモデル — ユーザーが入力するにつれてクエリ補完を返します。これは、検索ボックスの検索候補を強化するために使用します。
どちらのモデルタイプも、同じ raw_query データからトレーニングされます。アプリケーションごとに、最大 3 つのトレンドモデルまたはヒントワードモデルを作成できます。
前提条件
開始する前に、次のことを確認してください。
アプリケーションの検索リクエストに、実際のユーザークエリが設定された
raw_queryパラメーターが含まれていること少なくとも一部の過去の検索リクエストには、
raw_queryの値がシステムに存在します。
過去の検索リクエストに raw_query パラメーターが含まれていない場合、モデルトレーニングは失敗します。
トレンド検索モデルまたはヒントワードモデルの作成
コンソールでのモデル作成
OpenSearch コンソールにログインします。左側のナビゲーションウィンドウで、[検索アルゴリズムセンター] > [検索ガイド] を選択し、[人気検索ワードとヒント] をクリックします。
[作成] をクリックしてください。

次のパラメーターを設定します。
パラメーター 説明 [モデル名] 文字、数字、アンダースコア ( _) を使用できます。30 文字以内で、数字のみの名前は指定できません。[モデルタイプ] [トップ検索モデル] または [ヒントモデル] を選択します。 [フィルター条件] (任意) トレーニングに使用する過去の検索クエリを制限します。フォーマット: [parameter][operator][value]。サポートされているパラメーター:biz_typeおよびuser_id。サポートされている演算子:<、>、<=、>=、=、!=。複数の条件はカンマで区切ります。すべての条件は AND ロジックで適用されます。例:user_id=1,biz_type=1。
トレーニング保留中ステータスのモデルを見つけ、[操作] 列の [トレーニング] をクリックします。

トレーニング完了後、結果をプレビューします。
トップ検索のプレビュー: [プレビュー効果] をクリックして、最大20ページにわたってページごとに最大10件の推奨トップ検索を表示します。

ヒントワードのプレビュー:[プレビュー効果] をクリックすると、1 ページに 1 つずつ、最大 30 件のおすすめのヒントワードを表示できます。

API または SDK を使用したモデル作成
API を使用してモデルを作成すると、システムは作成リクエストを受信するとすぐにモデルのトレーニングを開始します。
管理およびコントロール SDK をプロジェクトに追加します。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-opensearch</artifactId>
<version>0.7.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>次の例では、トレンドモデルを作成します。 トレンドモデルの場合は type を "hot" に、ヒントワードモデルの場合は "hint" に設定します。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.opensearch.model.v20171225.*;
import com.aliyuncs.profile.DefaultProfile;
public class CreateModel {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile(
"cn-beijing", // 中国 (北京)
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
);
IAcsClient client = new DefaultAcsClient(profile);
CreateModelRequest request = new CreateModelRequest();
request.setAppGroupIdentity("app_name"); // ご利用のアプリケーション名に置き換えます
// type: "hot" = トレンド検索モデル, "hint" = ヒントワードモデル
// name: 文字、数字、アンダースコアのみ。最大30文字
String content = "{\"type\": \"hot\", \"name\": \"model_name\"}";
request.setHttpContent(content.getBytes(), "UTF-8", FormatType.JSON);
try {
HttpResponse response = client.doAction(request);
System.out.println(response.getHttpContentString());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}トレンド検索とヒントワードの取得
トレーニング完了後、API または SDK を呼び出してレコメンデーションを取得します。トレーニングステータスを確認するための API オペレーションはありません — レコメンデーションがいつ利用可能になるかを判断するには、結果エンドポイントをポーリングします。
トラフィック SDK をプロジェクトに追加します。
<dependency>
<groupId>com.aliyun.opensearch</groupId>
<artifactId>aliyun-sdk-opensearch</artifactId>
<version>3.5.0</version>
</dependency>次の例では、トレンドを取得します。適切な model_name を設定することで、ヒントワードにも同じ API パスを使用できます。
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
public class Hot {
private static final String accesskey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
private static final String secret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
private static final String host = "<endpoint>"; // 例: http://opensearch-cn-hangzhou.aliyuncs.com
private static final String appName = "<your-app-name>"; // ご利用のアプリケーション名
// トレンド検索の API パス
private static final String HOT_API_PATH = "/apps/{app_name}/actions/hot";
public static void main(String[] args) {
OpenSearch openSearch = new OpenSearch(accesskey, secret, host);
OpenSearchClient client = new OpenSearchClient(openSearch);
String requestPath = HOT_API_PATH.replace("{app_name}", appName);
Map<String, String> params = new HashMap<>();
params.put("model_name", "<your-model-name>"); // 作成したモデル名
params.put("hit", "20"); // 返される結果の数 (トレンド検索の場合は最大30、ヒントワードの場合は最大10)
try {
String response = client.call(requestPath, params, OpenSearchClient.METHOD_GET);
System.out.println(JSON.toJSONString(response));
} catch (OpenSearchClientException e) {
e.printStackTrace();
}
}
}戻り値の制限:
| モデルタイプ | デフォルトの結果数 | 最大値 (hit パラメーター) |
|---|---|---|
| トレンド検索 | 10 | 30 |
| ヒントワード | 3 | 10 |
ホットワードランキングを取得するには、ListStatisticLogs 操作を呼び出します。
モデルの管理
モデルリスト
「[トップ検索とヒント]」ページには、すべてのモデルの名前、タイプ、作成時刻、ステータス、直近のトレーニング開始時刻、および最新バージョンのステータスが一覧表示されます。いずれかのモデルをデフォルトに設定できます。リクエストで model_name が指定されていない場合、デフォルトのモデルが使用されます。

モデルの詳細
モデル名をクリックすると、その詳細ページが開きます。 「[基本情報]」セクションには、現在のモデルステータスとトレーニングのタイムスタンプが表示されます。 「[トレーニング履歴]」セクションには、各トレーニング実行のバージョン、ステータス、開始時刻、および終了時刻が一覧表示されます。
失敗したトレーニングのトラブルシューティング
モデル詳細ページで、[例外レポート] にカーソルを合わせると、失敗理由を確認できます。[整合性レベルアップグレードの条件を表示] にカーソルを合わせると、モデルがより高い整合性レベルを満たすために必要な基準を確認できます。

ブラックリストとホワイトリストの設定
「[設定情報]」セクションで、[設定]をクリックして、モデルのブラックリストまたはホワイトリストを設定します。詳細については、「ブラックリストとホワイトリスト」をご参照ください。

トレンド検索リストサイズの調整
デフォルトでは、トレンド検索リストは最大10,000件のエントリを表示します。ビジネス要件に基づいてカスタム制限 (最小: 100) を設定します。
モデル品質の最適化
ユーザー行動データの接続
生の検索ログから生成されるトレンド検索とヒントワードは良い出発点ですが、ユーザー行動データを接続することで、レコメンデーションの品質が時間の経過とともに向上します。
行動追跡を有効にするには、検索リクエストに次のパラメーターを含めます。
from_request_id— ユーザーがトレンドまたはヒントワードをクリックしたときに返されるrequest_idの値を設定します。これにより、後続の検索が、トリガーとなったレコメンデーションに関連付けられます。user_id— ビジネス運用レポートでユニーク訪問者 (UV) メトリックを有効にします。
エンドツーエンドの仕組み:
ユーザーは、API から返されたトレンド検索のリストを表示します。この応答には、
request_idが含まれます。ユーザーはトレンド検索をクリックし、新しい検索リクエストをトリガーします。
その検索リクエストで、
from_request_idをステップ 1 のrequest_idに設定します。ユーザーが結果をページングする場合、各ページ遷移リクエストにも同様に
from_request_idを設定します — 各ページビューは独立したページビュー (PV) としてカウントされます。
このデータが接続されると、ビジネス運用レポートには以下が表示されます。
トレンド検索とヒントワードによってガイドされた検索のページビュー (PV) とユニークビジター (UV)
ガイドされた検索のゼロ結果率
レコメンデーションのクリック率
運用計画のためのユーザー関心トレンド
ビジネス運用レポートの表示
OpenSearch コンソールで、[レポート統計] に移動してパフォーマンスメトリクスを表示します。
トップ検索レポート: [レポート統計] > [トップ検索レポート] を選択します。

ヒントレポート: [レポート統計] > [ヒントレポート] を選択します。

使用制限
| 制限 | 値 |
|---|---|
| アプリケーションあたりのトレンド検索モデルまたはヒントワードモデル (合計) | 3 |
| トレンド検索リストサイズ (デフォルト) | 10,000 エントリ |
| 上位検索リストのサイズ(最小値) | 100 エントリ |
| トレーニングデータウィンドウ | 過去14日間 (デフォルト); 最大6ヶ月 |
| トレーニングスケジュール | 毎日 (自動) |
| トレーニング対象のクエリ | raw_query のみ。結果を返す必要があり、重複してはなりません |
次のステップ
検索リクエストを開始する —
raw_query、from_request_id、およびuser_idを検索リクエストに含める方法について学びます。トレンドとヒントワードのクエリ — レコメンデーションエンドポイントの完全な API リファレンス。
ブラックリストとホワイトリスト — レコメンデーションに含める、または除外する特定のクエリをフィルターします。