如何从neo4j返回所有最新节点?

时间:2013-02-04 08:04:32

标签: lucene neo4j cypher gremlin

是否可以查询neo4j以获取最新节点?在这种情况下,索引属性“timestamp”记录每个节点上的时间(以毫秒为单位)。

我发现的所有cypher示例都涉及到图形类型的查询 - “从节点n开始并遵循关系。返回在一个字段上排序的结果集的一般最佳方法是什么?这在图形数据库中是否可行,例如node4j?

2 个答案:

答案 0 :(得分:5)

在嵌入式Java API中,可以使用Lucene构造添加排序。

http://docs.neo4j.org/chunked/milestone/indexing-lucene-extras.html#indexing-lucene-query-objects http://blog.richeton.com/2009/05/12/lucene-sort-tips/

在服务器模式下,您可以将?order参数传递给lucene查询查询。

http://docs.neo4j.org/chunked/milestone/rest-api-indexes.html#rest-api-find-node-by-query

取决于您为数据建立索引的方式(不是数字上的,因为lucene查询语法解析器和数字搜索存在问题:(),在cypher中你可以这样做:

start n=node:myindes('time: [1 to 1000]') return n order by n.time asc

还有更多图形化的方法,例如:通过将事件与NEXT关系链接起来并返回此列表中的头部和后n个元素

http://docs.neo4j.org/chunked/milestone/cypher-cookbook-newsfeed.html

或为时间创建树结构:

http://docs.neo4j.org/chunked/milestone/cypher-cookbook-path-tree.html

答案 1 :(得分:2)

是的,这是可能的,并且有一些不同的方法可以这样做。

您可以使用timestamp属性和经典索引,并按该属性对结果集进行排序。或者您可以创建一个基于时间的图形内部索引,例如f.e.在彼得的博客文章中描述:

http://blog.neo4j.org/2012/02/modeling-multilevel-index-in-neoj4.html