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的模型時,它解決了問題。 –