在Vespa

时间:2018-04-04 06:04:28

标签: vespa

我有一份文件(文件类型A),它有多个(任意数量)相同类型的儿童文件(文件类型B)。来自vespa文档的以下链接讨论了父子关系。

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

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

这样的东西
field child_ref type array<reference<doc_type_child>> {
      indexing: attribute
}
当然,由于所有子引用都具有相同的字段,因此我很难导入某个字段。

让我们说子文档类型是模型,父文档类型是 car ,基本上,我想要一个我需要的嵌套文档基于父域和子域的查询能力。让我们来说,如果我搜索梅赛德斯汽车的轮辐范围(3,5),在父文件中搜索梅赛德斯品牌(母文档字段),我想进一步选择梅赛德斯汽车结果车型(car1,car2,...),车轮辐条(儿童文档字段)从3到5,(car1 [模型1,模型4,模型6],car2 [模型2,模型3,模型5])。基本上,命中应该是梅赛德斯品牌和所有那些命中,内部命中具有3-5轮辐条的模型。

1 个答案:

答案 0 :(得分:4)

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

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

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