是否可以查询neo4j以获取最新节点?在这种情况下,索引属性“timestamp”记录每个节点上的时间(以毫秒为单位)。
我发现的所有cypher示例都涉及到图形类型的查询 - “从节点n开始并遵循关系。返回在一个字段上排序的结果集的一般最佳方法是什么?这在图形数据库中是否可行,例如node4j?
答案 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