在查询文本中传递排名功能

Passing Ranking function in query text

我有一个场景,其中外部代理动态生成排名函数,我想将其作为查询参数传递,而不是在搜索定义文件中静态定义它,比如 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 中实现这个的解决方案吗?

我已经在 rank expression 命令中尝试 foreach 来达到这个目的,但它不具备动态具有任何功能的灵活性。

http://docs.vespa.ai/documentation/ranking.html#using-query-variables 解释了宏,我发现宏被视为排名特征,并且可以在查询中传递排名特征。所以这应该意味着可以在表达式中使用的查询中传递宏,但这是不可能的。

无法通过查询发送排名表达式(效率不高,因为它们(通常)是用 LLVM 等编译的)。

您不能使用固定的排名表达式并使用查询功能来 weight/or 打开或关闭它的不同部分吗?您还可以配置许多不同的排名表达式,并在查询时使用 ranking.profile=profileName.

在它们之间进行选择