1

假设有员工节点以薪水作为属性之一。使用 Scala-Neo4j Api 获得薪水排名前 5 的员工节点的最快方法是什么?

4

1 回答 1

3

您可以将员工的薪水作为财产进行索引。在这种情况下,您只需要获取索引,然后查询他的成员。在 Java 中,它看起来像:

db.index().forNodes('salaries').query(YOURQUERY)

您可以使用标签(如果您使用 Neo4j 2)将节点标记为员工并仅在这些节点中搜索。

您还可以在“员工”上设置的每个员工上设置类型属性以搜索所有节点(但如果您有很多节点,则需要时间)

另一种解决方案是在员工和超级节点“员工”之间创建关系 is_a,但根据您的使用情况,它可能会导致麻烦(参见http://www.aleksavukotic.com/2011/07/neo4j-super-nodes -and-indexed.html)。

这些是几种不同的搜索方式。在某些情况下有些更快,您必须根据需要对其进行调整。如果您正在谈论您必须进行搜索的查询,那么 Cypher 和 Javadoc 上的文档应该会有所帮助。

于 2013-06-24T12:29:19.810 回答