如何使用"map"数据结构"in a query"

How to use "map" data structure "in a query"

我想在 vespa query(不是文档属性)中包含 map 并在 expression 中查找它,但我有一些问题。

  1. 我可以在 Vespa query 中使用 map 吗?
  2. 如果可以,如何查找expression中的元素?
  3. 如果不可能,我可以使用 mapped tensor 类型代替吗?

此处有关于如何使用 sameElement 查询运算符搜索地图字段的示例 https://docs.vespa.ai/documentation/reference/query-language-reference.html#sameelement,但如果我理解正确的话,您想将地图作为查询运算符传递吗?如果是这样,问题是你想用它来召回(哪些文档匹配或纯粹作为配置排名表达式中排名的输入?如果是后者,你可以使用张量,但张量不能用于 recall/search。

要将稀疏值传递给单独访问它们的排名表达式(例如 XGBoost 或其他 GBTD 模型),请将它们作为单独的查询特征传递:query(mykey) 等

在 HTTP 请求中:

ranking.features.query(mykey)=30.3

或在 Java 代码中(在搜索器中):

query.getRanking().getFeatures().put("query(mykey", String.valueOf(30.3));

您可能还想为模型中使用的每个查询特征分配一个默认值。参见 https://docs.vespa.ai/documentation/ranking.html#using-query-variables

(如果您的模型是在整个地图上计算的,例如通过将其与文档地图结合起来,您将使用映射张量查询功能而不是许多标量查询功能。)