2014-04-22 26 views
0

我想弄清楚如何在Neo4j中對這個場景建模。對Neo4j中的數據建模的建議

我有一個名爲「屬性」的「產品」節點。問題在於name屬性可以在不同語言之間進行多種變化,這些變體都應該引用同一個節點。

我希望能夠搜索名稱及其所有變體以引用一個節點。

.eg。

Name: Banana 
Variation: Banano 
Variation: Banane 

etc. 

節點:

Food {id: 1, name: "Banana"} 

翻譯{編號:1000,名稱: 「Banane」 語言: 「法語」}

關係

(:Food)<-[:SIMILAR_TO]-(:translation) 

我期待一些效率更高,可以輕鬆使用索引進行快速搜索。

關於如何最佳建模該場景的任何建議?

回答

0

這裏是你可以做什麼的例子:

(:Product {id: 1})-[:HAS_NAME]->(:Name {name:"Banana", lang:"en"}) 
     "  -[:HAS_NAME]->(:Name {name:"Banane", lang:"fr"}) 
     "  -[:HAS_NAME]->(:Name {name:"Banano", lang:"it"}) 

(:Product {id: 1})-[:SIMILAR_TO]->(:Food) 

您可以在:Product id創建一個唯一性約束,並在:Name name索引。

這樣,您可以輕鬆找到特定產品的所有本地化名稱,並輕鬆找到所有具有特定名稱的產品。

+0

謝謝!我會試試看。 –