2

我有一个文档(文档类型 A),其中包含多个(任意数量)相同类型的子文档(文档类型 B)。vespa 文档中的以下链接讨论了父子关系。

http://docs.vespa.ai/documentation/search-definitions.html#document-references

为此,我们必须定义一个引用类型字段,然后从引用的文档中导入任何字段。如果我想要来自父文档的多个文档引用怎么办。我不能定义类似的东西,

field child_ref type array<reference<doc_type_child>> {
      indexing: attribute
}

当然,我会很难导入某个字段,因为所有子引用都具有相同的字段。

假设子文档类型是模型,父文档类型是汽车,基本上,我想要一个嵌套文档,其中我还需要基于父字段和子字段进行查询的能力。假设我在 (3,5) 范围内搜索带有轮辐的梅赛德斯汽车,在父文档中搜索梅赛德斯品牌(父文档字段),然后我想选择梅赛德斯汽车结果的模型(car1、car2、 ...)具有从 3 到 5 的轮辐(子文档字段),(car1[model 1, model 4, model 6], car2[model 2, model 3, model 5])。基本上,命中应该是梅赛德斯品牌的,并且在所有这些命中中,内部命中都是具有 3-5 个轮辐的车型。

4

1 回答 1

4

关系从子文档到父文档,因此您不能将子文档引用存储在父文档中。

但是您提供的示例完全可以使用 car 作为父(全局)文档类型并为子文档建模,每个子文档都引用父文档(汽车)并且可以在匹配/搜索时从父文档类型导入任何字段子(模型)文档类型,您可以搜索模型文档字段和导入的父汽车字段。/search/?query=car_brand:mercedes+AND+model_spokes:[3;5]&restrict=model

其中 car_brand 是从模型文档类型中的父汽车导入的字段。

于 2018-04-04T07:22:39.060 回答