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

OpenSearch:QueryMatchRatio

最終更新日:Apr 01, 2026

QueryMatchRatio は、検索クエリの term のうち、インデックス (すべてのフィールドまたは特定のフィールド) にヒットした割合を計算します。カスタムスコアラー内で使用して、term カバー率の信号をドキュメントランキングに組み込みます。

計算式: ヒットした term 数 / インデックス内の総 term 数

戻り値の範囲は [0, 1] です。

概要

OpenSearch のインデックスには複数のフィールドを含めることができます。検索クエリの term がいずれかのフィールドにヒットすると、対応するドキュメントが返されます。QueryMatchRatio は、クエリがインデックスをどの程度カバーしているかを、2 つの粒度レベルで測定します:

  • すべてのフィールド:インデックスのいずれかのフィールドにヒットしたクエリ term の、インデックス内のすべての term に対する比率

  • 特定のフィールド:インデックスの指定されたフィールドにヒットしたクエリ term の、インデックス内のすべての term に対する比率

例: デフォルトのインデックスに titlebody の 2 つのフィールドがあるとします。クエリ default:'User Guide' に対して、以下を計算できます:

  • titlebody の両方にまたがるマッチ率

  • title のみのマッチ率

  • body のみのマッチ率

メソッド

メソッド説明戻り値の型戻り値の範囲
QueryMatchRatio create(OpsScorerInitParams params)デフォルトインデックスのすべてのフィールドにわたるマッチ率を測定する QueryMatchRatio を作成します。QueryMatchRatio
QueryMatchRatio create(OpsScorerInitParams params, CString indexName)指定されたインデックスのすべてのフィールドにわたるマッチ率を測定する QueryMatchRatio を作成します。QueryMatchRatio
QueryMatchRatio create(OpsScorerInitParams params, CString indexName, CString fieldName)指定されたインデックスの特定のフィールド内のマッチ率を測定する QueryMatchRatio を作成します。QueryMatchRatio
void setGroupScoreMergeOp(CString opName)複数のクエリグループからのスコアをどのように組み合わせるかを設定します。サポートされている値: sum (デフォルト)、maxvoid
double evaluate(OpsScoreParams params)オブジェクトの作成時に設定されたフィールドのマッチ率を計算します。double[0, 1]

メソッドの詳細

create(OpsScorerInitParams params)

デフォルトインデックスのすべてのフィールドにわたるマッチ率を測定する QueryMatchRatio を作成します。

パラメーター

パラメーター説明
paramsOpsScorerInitParams初期化パラメーター。 詳細については、「OpsScorerInitParams」をご参照ください。

create(OpsScorerInitParams params, CString indexName)

指定されたインデックスのすべてのフィールドにわたるマッチ率を測定する QueryMatchRatio を作成します。

パラメーター

パラメーター説明
paramsOpsScorerInitParams初期化パラメーター。 詳細については、「OpsScorerInitParams」をご参照ください。
indexNameCStringインデックス名。 定数である必要があります。 インデックスは、一般的な中国語アナライザ、カスタムアナライザ、1 文字の中国語アナライザ、英語アナライザ、またはあいまい検索アナライザを使用できます。

create(OpsScorerInitParams params, CString indexName, CString fieldName)

指定されたインデックスの特定のフィールド内のマッチ率を測定する QueryMatchRatio を作成します。

パラメーター

パラメーター説明
paramsOpsScorerInitParams初期化パラメーター。詳細については、「OpsScorerInitParams」をご参照ください。
indexNameCStringインデックス名。 定数である必要があります。 インデックスは、一般的な中国語アナライザ、カスタムアナライザ、1 文字の中国語アナライザ、英語アナライザ、またはあいまい検索アナライザを使用できます。
fieldNameCStringindexName で指定されたインデックス内のフィールドの名前。 定数である必要があります。

setGroupScoreMergeOp(CString opName)

複数のクエリグループからのテキスト関連度スコアをどのように組み合わせるかを設定します。

アナライザは、元の検索クエリを 1 つ以上のクエリグループに分割します。 デフォルトでは、クエリグループは 1 つだけです。

重要

このメソッドは、スコアラーの初期化中にのみ呼び出してください。

パラメーター

パラメーター説明
opNameCStringクエリグループスコアの集計方法。 有効な値: sum (デフォルト)、max

evaluate(OpsScoreParams params)

オブジェクトの作成時に設定されたフィールドのマッチ率を計算します。

パラメーター

パラメータータイプ説明
paramsOpsScoreParamsOpsScoreParamsスコア計算パラメーター。 をご参照ください。

戻り値

設定されたフィールドにヒットしたクエリ term の、インデックス内のすべての term に対する比率。 範囲: [0, 1]。

次のスコアラーは、2 つの QueryMatchRatio 信号を組み合わせます。1 つは title_index にスコープされ、もう 1 つはデフォルトインデックスのすべてのフィールドをカバーします。 最終スコアはそれらの合計です。

package users.scorer;
import com.aliyun.opensearch.cava.framework.OpsScoreParams;
import com.aliyun.opensearch.cava.framework.OpsScorerInitParams;
import com.aliyun.opensearch.cava.framework.OpsRequest;
import com.aliyun.opensearch.cava.framework.OpsDoc;
import com.aliyun.opensearch.cava.features.similarity.querymatch.QueryMatchRatio;

class BasicSimilarityScorer {
    QueryMatchRatio _f1;
    QueryMatchRatio _f2;
    boolean init(OpsScorerInitParams params) {
        _f1 = QueryMatchRatio.create(params, "title_index");
        _f2 = QueryMatchRatio.create(params);
        return true;
    }

    double score(OpsScoreParams params) {
        return _f1.evaluate(params) + _f2.evaluate(params);
    }
}