OpsRequest は、Cava スコアリングフレームワークのクエリリクエストです。これを使用して、クエリの kvpairs 句で渡されたカスタムパラメーターにアクセスできます。OpsRequest は、getKVPairs() という 1 つの関数を提供します。
関数
| 関数 | 説明 |
|---|---|
OpsKvPairs getKVPairs() | すべてのカスタムパラメーターをキーと値のペアとして返します。 |
関数の詳細
getKVPairs()
OpsKvPairs getKVPairs()クエリの kvpairs 句で定義されたすべてのカスタムパラメーターを含む OpsKvPairs オブジェクトを返します。
このメソッドは、score() ではなく init() で呼び出してください。
score() 関数は、スコアリング対象のすべてのドキュメントに対して 1 回ずつ実行されます。score() 内で getKVPairs() を呼び出すと、呼び出しごとにオーバーヘッドが発生します。代わりに 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) {
// 何らかの処理を実行
}
return 0.0;
}
}