OpsRequest

更新时间:
复制 MD 格式

OpsRequest represents a query request in the CAVA scoring framework. Use it to read custom key-value parameters that your application passes through the kvpairs clause at query time.

Method summary

MethodReturn typeDescription
getKVPairs()OpsKvPairsReturns all custom key-value pairs from the kvpairs clause

How it works

When a query includes a kvpairs clause, the CAVA framework makes those parameters available through OpsRequest. Your scorer retrieves an OpsRequest instance from OpsScorerInitParams, then calls getKVPairs() to get an OpsKvPairs object. From there, use type-specific getters to read individual parameter values.

For the full OpsKvPairs API, see OpsKvPairs.

Usage notes

Read query parameters in `init()`, not in `score()`.

The score() method runs once for every matched document. Reading query parameters inside score() repeats the same lookup on every call and significantly increases scoring cost. Read them once in init() and store the values as instance fields.

Example

The following example reads a custom flag parameter from the kvpairs clause during scorer initialization, then uses its value in the scoring logic.

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 kvparis = request.getKVPairs();
        flag = kvpairs.getLong("flag"); // Obtain the value of the custom parameter whose key is flag from the kvpairs clause, and convert the value to a LONG value.
        return true;
    }

    double score(OpsScoreParams params) {
        if (flag == 1) {
            //do something
        }
        return 0.0;
    }
}
getKVPairs() is the only method on OpsRequest. The class does not expose other query properties.