我有一个场景,其中外部代理动态生成排名函数,我想将其作为查询参数传递,而不是在搜索定义文件中静态定义它,就像
http://localhost:8080/search/?query=honda car&rankfeature.rankingExpression="query(title_match_weight)*matches(title)+query(tags_match_weight)*matches(tags)"&rankfeature.query(title_match_weight)=10&rankfeature.query(tags_match_weight)=20
我现在无法做到的那样。我们有解决方案在 Vespa 中实现这一目标吗?
我已经尝试foreach
在 rank 表达式命令中实现此目的,但它不能提供动态具有任何功能的灵活性。
http://docs.vespa.ai/documentation/ranking.html#using-query-variables 解释了宏,我发现宏被视为排名特征,排名特征可以在查询中传递。所以这应该意味着可以在查询中传递可以在表达式中使用的宏,但这是不可能的。