すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:カスタムソートモデルを作成する

最終更新日:Mar 04, 2025

このトピックでは、カスタムソートモデルとは何か、およびカスタムソートモデルを作成する方法について説明します。

概要

OpenSearchは、検索結果のソートにおけるユーザーエクスペリエンスを向上させるために、カスタムソートモデルをサポートしています。ビジネスシナリオに基づいてカスタム特徴データを追加し、カスタムPythonまたはTensorFlowスクリプトを使用してソートモデルをトレーニングし、ソートモデル記述を作成できます。これにより、検索結果を柔軟かつパーソナライズされた方法でソートできます。

手順

カスタムソートモデルを作成する前に、特徴記述モデル記述を作成する必要があります。

特徴記述を作成する

  1. 専用クラスタタイプのOpenSearch Industry Algorithm Editionインスタンスを作成した後、OpenSearch Industry Algorithm Editionコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、カスタムソートモデルをクリックします。特徴記述タブで、作成をクリックします。

  2. 表示されるページで、特徴記述名を入力し、ソートモデル特徴を追加します。特徴を追加するには、特徴名を指定し、特徴タイプを選択してから、特徴を選択する必要があります。

説明

モデル記述を作成する

  1. 専用クラスタタイプのOpenSearch Industry Algorithm Editionインスタンスを作成した後、OpenSearch Industry Algorithm Editionコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、カスタムソートモデルをクリックします。モデル記述タブで、作成をクリックします。

  2. 表示されるページで、モデル記述名を入力し、Pythonスクリプトを記述して、送信をクリックします。

サンプルコードの詳細については、カスタムソートモデルの開発者ガイドを参照してください。

カスタムソートモデルを作成する

  1. OpenSearch Industry Algorithm Editionコンソールにログインします。左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、カスタムソートモデルをクリックします。ソートモデルタブで、作成をクリックします。

  2. 表示されるページで、モデル名を入力し、モデルタイプを選択します。デフォルトでは、モデルタイプとしてカスタムソートモデルが選択されています。ビジネス要件に基づいてスケジュールトレーニングをオンにします。作成した特徴記述とモデル記述を選択し、送信をクリックします。

  3. モデルが作成されたら、ソートモデルタブでモデルを見つけ、アクション列のトレーニングをクリックします。

  4. トレーニングが開始されたら、モデル詳細ページでトレーニングの進捗状況を確認します。

  5. トレーニングが完了し、モデルが利用可能状態になったら、モデルを使用します。モデルがまだ利用不可状態の場合は、モデル詳細ページのデータ検証セクションにある整合性レベルアップグレードの条件に基づいてモデルを調整します。モデルが条件を満たすように調整されたら、翌日モデルをトレーニングします。ご質問がある場合は、チケットを送信してテクニカルサポートにお問い合わせください。

Cavaベースのソートポリシーを作成する

  1. 左側のナビゲーションペインで、検索アルゴリズムセンター > ソート設定を選択します。ソート設定ページの左側のペインで、ポリシー管理をクリックします。ポリシー管理ページで、作成をクリックします。

  2. 表示されるページで、ポリシー名を入力し、スコープドロップダウンリストから精密ソートを選択し、タイプドロップダウンリストからCavaスクリプトを選択して、次へをクリックします。

  3. スクリプトファイルを追加をクリックし、サンプルCavaスクリプトをスクリプトエディターにコピーします。コンパイルをクリックします。コンパイルが成功したら、保存公開をクリックします。その後、検索テストを実行できます。

  4. サンプルCavaスクリプト:

package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsDoc;
import com.aliyun.opensearch.cava.features.algo.AlgoModel;

class BasicSimilarityScorer {
    // メンバー変数を定義できます。
    boolean init(OpsScorerInitParams params) {
        // コードを実装し、検索リクエストに関連する変数(クラスのメンバー変数など)を初期化します。
        return true;
    }
    double score(OpsScoreParams params) {
        OpsDoc doc = params.getDoc();
        double score = 10;
        // コードを実装し、スコアの結果をscoreパラメータに割り当てます。
        doc.trace("double value:", score);
        return score;
    }
};

class IntelligenceAlgorithmScorer {
    AlgoModel _algoModel;

    boolean init(OpsScorerInitParams params) {
      // tf_checkpointパラメータは固定パラメータです。
        _algoModel = AlgoModel.create(params, "tf_checkpoint","rank", "カスタムソートモデルの名前"); 
        return true;
    }

    double score(OpsScoreParams params) {
        OpsDoc doc = params.getDoc();
        double modelScore = _algoModel.evaluate(params);
        doc.trace("rankModelScore: ", modelScore);
        
        double score = modelScore + 700;
        return score;
    }
};

検索テストの結果を表示する

左側のナビゲーションペインで、機能拡張 > 検索テストを選択します。検索テストページで、検索条件を指定します。

  • 検索リクエストでは、query、second_rank_type、second_rank_name、およびraw_queryパラメータが必要です。

使用上の注意

  • カスタムソートモデルは、Cavaベースのプラグインでのみ使用できます。

  • カスタムソートモデルは、専用クラスタタイプのOpenSearch Industry Algorithm Editionインスタンスでのみ使用できます。

  • 各インスタンスは、最大3つのカスタムソートモデルをサポートします。

  • アップグレード条件のraw_queryパラメータは、検索リクエストで必須のパラメータです。パラメータの値は、検索結果を持つ一意で独立した検索クエリである必要があります。詳細については、検索機能を実装するためのデモコードを参照してください。

  • 関連するAPI操作とSDKの詳細については、アルゴリズムを参照してください。

  • カスタムソートモデルのトレーニングには別途料金がかかります。詳細については、用語を参照してください。

  • ベストプラクティスの詳細については、カスタムソートモデルを作成するを参照してください。