【发布时间】:2013-01-18 21:47:38
【问题描述】:
是否可以查询 neo4j 的最新节点?在这种情况下,索引属性“timestamp”记录每个节点上的时间(以毫秒为单位)。
我发现的所有密码示例都涉及图形类型查询-“从节点 n 开始并遵循关系。返回按一个字段排序的结果集的一般最佳方法是什么?这在图形数据库中是否可行,例如节点4j?
【问题讨论】:
标签: lucene neo4j cypher gremlin
是否可以查询 neo4j 的最新节点?在这种情况下,索引属性“timestamp”记录每个节点上的时间(以毫秒为单位)。
我发现的所有密码示例都涉及图形类型查询-“从节点 n 开始并遵循关系。返回按一个字段排序的结果集的一般最佳方法是什么?这在图形数据库中是否可行,例如节点4j?
【问题讨论】:
标签: lucene neo4j cypher gremlin
在嵌入式 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 查询语法解析器和数字搜索存在问题 :( ),在密码中您可以这样做:
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
【讨论】:
start n=node:node_auto_index('timestamp:[0 TO NOW]') return n order by n.timestamp desc limit 10;,它将搜索整个索引并按时间顺序返回10个最新节点
是的,这是可能的,并且有一些不同的方法可以做到这一点。
您可以使用时间戳属性和经典索引,并按该属性对结果集进行排序。或者您可以创建一个基于时间的图中索引,例如 f.e.在 Peter 的博文中描述:
http://blog.neo4j.org/2012/02/modeling-multilevel-index-in-neoj4.html
【讨论】: