1
好吧,让我来设置一下:我创建了一个Neo4J数据库,作为车辆节点(每个车辆节点具有:车辆标签)。现在,我还创建了22个其他标签节点来描述一个功能。例如,我有一个“:MDL”特征节点,一个“:YR”特征节点,以及一个“:DRIVE”特征节点和一个“:DIV”特征节点。每个特征节点都有一个名为“value”的属性。使用Cypher,多个节点与单个节点有关系,如何查询这些多个节点的匹配以找到匹配的根节点
所以,如果我想找到具有四轮驱动的2016雪佛兰车型,我的Cypher查询将如下:
MATCH
(v:Vehicle)--(:DIV{value:"Chevrolet"}),
(v)--(:DRIVE{value:"4WD"}),
(v)--(:YR{value:"2016"}),
(v)--(model:MDL)
return distinct(model.value)
而且,这种成功返回的8个雪佛兰车型,提供4WD(相对于AWD)如下:
"Silverado 3500HD"
"Colorado"
"Silverado 2500HD"
"Silverado 1500"
"Silverado 3500HD Chassis"
"Tahoe"
"Suburban"
"Suburban 3500HD"
我的问题,是在看个人资料的计划,我不认为这是最有效的方式。因为基本上Cypher正在独立制作每个匹配模式,然后合并结果。我正试图让Cypher一步到位。有没有人有任何关于如何使这种效率更高的推荐?
谢谢,帮助很多。没有我的方法那么快,但是当我想要具有4WD或AWD的模型时,它解决了问题。 –