OpsRequest は、Cava スコアリングフレームワークにおけるクエリリクエストを表します。これを使用して、クエリの kvpairs 句で渡されたカスタムパラメーターにアクセスします。OpsRequest は、getKVPairs() という単一の関数を公開します。
関数
| 関数 | 説明 |
|---|---|
OpsKvPairs getKVPairs() | すべてのカスタムパラメーターをキーと値のペアとして返します。 |
関数の詳細
getKVPairs()
OpsKvPairs getKVPairs()クエリの kvpairs 句で定義されたすべてのカスタムパラメーターを含む OpsKvPairs オブジェクトを返します。
このメソッドはinit()で呼び出し、score()では呼び出さないでください。
score() 関数は、スコアリングに関与するすべてのドキュメントに対して一度実行されます。getKVPairs() を score() 内で呼び出すと、呼び出しごとにオーバーヘッドが発生します。代わりに init() で呼び出すと、ルックアップはクエリごとに 1 回だけ実行されます。
例
次の例では、スコアラーの初期化中に flag パラメーターを取得し、スコア関数でそれを使用します。
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.OpsKvPairs;
class BasicSimilarityScorer {
long flag;
boolean init(OpsScorerInitParams params) {
OpsRequest request = params.getRequest();
OpsKvPairs kvpairs = request.getKVPairs();
flag = kvpairs.getLong("flag"); // kvpairs 句から "flag" キーの値を long 値として取得します。
return true;
}
double score(OpsScoreParams params) {
if (flag == 1) {
// do something
}
return 0.0;
}
}