Neo4j节点加权

时间:2013-03-22 18:31:58

标签: database-design neo4j

鉴于电影数据库,是否有可能根据某些演员的存在及每个节点在电影分钟的百分比中的存在来加权每个节点,只返回超过指定阈值的节点?请提供示例(常规)查询。

居:

Threshold: 600 (entered dynamically, not present in DB)

Actor: Good Guy
Val: +12 (entered dynamically, not present in DB)

Actor: Bad Guy
Val: -2 (entered dynamically, not present in DB)

Movie: Nice Movie
Length: 120min
Good Guy presence: 70min
Bad Guy presence: 10min

Val: 120/70*100*(+12) + 120/10*100*(-2)
If Val > 600 then return the node

此外,Neo4j是适合此类操作的数据库还是Mysql优于这种用法?

2 个答案:

答案 0 :(得分:1)

Neo是这类事情的不错选择。查看他们构建的cineasts示例图: http://www.neo4j.org/develop/example_data
http://static.springsource.org/spring-data/neo4j/docs/dev/reference/pdf/spring-data-neo4j-tutorial.pdf

您可能希望将权重设为演员与电影之间的关系,而不是节点。

答案 1 :(得分:1)

这更像是一个设计问题而不是你选择的数据库之一,但是,neo4j将是一个很好的候选者,因为它是一个属性图,你可以存储像权重一样的东西或关系。

话虽这么说,你可能想把重点放在关系而不是节点上,这样你就可以对演员/演员和电影进行简单的搜索,作为一种聚合。