关于在哪里使用label vs node属性和relationship +节点的任何经验规则。
让我们举个例子,比如说我有一家商店,我想把我的产品放在neo4j里。它们的标识符是产品的sku,我也想对它们进行分类,就像这个是关于衣服、食物、电子产品的,你就知道了。我将在我的图形上进行免费搜索,就像用户可以搜索任何东西一样,我会返回与该搜索字符串相关的所有内容。
是否最好使用:
sku 001
的节点,我将标记它为Food
的标签。sku 001
的节点,并且在这个节点上有一个名为category:"Food"
的属性sku 001
节点,我将为Food
创建另一个节点,并创建一个"category
“关系来关联它们。我已经读过,如果要查找一个属性,它最好是作为一个关系+节点,因为遍历要比查找节点的属性快得多。
提亚
发布于 2014-03-13 01:26:42
是否为类别使用属性、标签或节点取决于如何查询数据。
(在这里,我假设您有一个相当小的、相当固定的类别集。)
如果不按类别查询,但只需要返回已通过其他方式找到的节点类别,则使用属性。(例如:sku 001
的项目类别是什么?)
如果需要按类别查询,请使用标签。(例如:哪些食品的价格低于10美元?)
如果您需要遍历类别而不知道它是什么,请使用节点。(例如:与用户选择的类别相同的10个最受欢迎的项目是什么?)
发布于 2016-12-05 02:49:43
这篇博客文章还可能因为它包含的基准测试而有所帮助。
我用4种不同的方式(…)来模拟“关系”
(node)-[:HAS_ADDRESS]->(address)
(node)-[:HAS]->(address:Address)
进行筛选(node)-[:HAS {type:“address”}]->(address)
进行筛选(node)-[:HAS]->(address {type: “address”})
筛选<...>
所以总结一下…特定关系#ftw!
https://stackoverflow.com/questions/22340475
复制相似问题