在查询文本中传递排名功能
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.
在它们之间进行选择
我有一个场景,其中外部代理动态生成排名函数,我想将其作为查询参数传递,而不是在搜索定义文件中静态定义它,比如
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.
在它们之间进行选择