Neo4j中数据建模的建议

时间:2014-04-22 08:43:28

标签: neo4j data-modeling

我试图弄清楚如何在Neo4j中建模这个场景。

我有一个"产品"具有name属性的节点。问题是name属性可以跨不同语言的几个变体,它们都应该引用同一个节点。

我希望能够搜索名称及其所有变体以引用一个节点。

.eg。

Name: Banana
Variation: Banano
Variation: Banane

etc.

节点:

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

翻译{id:1000,姓名:" Banane",语言:"法语"}

关系

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

我看起来效率更高,可以轻松使用快速搜索索引。

有关如何最好地建模此方案的任何建议?

1 个答案:

答案 0 :(得分: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上创建索引。

通过这种方式,您可以轻松找到特定产品的所有本地化名称,并轻松找到具有特定名称的所有产品。