neo4j获取新节点列表(change-feed)

时间:2017-08-16 02:57:26

标签: neo4j cypher scalability

在Neo4j上有没有办法获取一段时间后创建的所有新节点的列表?就像一个内置的改变饲料?

我知道这可以通过遍历整个图表并比较节点的日期是否为>来完成。比之前设定的门槛值。

然而,这至少不是最佳的,并且在1000万节点图上表现不佳。

有没有办法知道是否添加了新节点? (或关系)某种改变饲料,如内置的布隆过滤器?

如果没有,有关每隔x分钟获取更改的任何想法吗?

1 个答案:

答案 0 :(得分:1)

你试过INDEX吗?使用索引可以提高查询性能。尝试在属性中创建与节点创建时间相关的索引。

30 3   2017-07-12 15:26:36.753   15000.00  0.00      15000.00
31  3   2017-07-12 15:26:36.753   0.00      1000.00   14000.00

创建节点后,您可以使用timestamp()函数并将当前时间戳保存在CREATE INDEX ON :Person(created_at) 个节点的属性created_at中。

:Person

然后,您可以通过CREATE (:Person {name:'Jon', created_at: timestamp()}) CREATE (:Person {name:'Doe', created_at: timestamp()}) 节点的created_at属性进行查询,并使用索引。

:Person

此外,如果您不需要同时在给定时间戳之后修改所有节点,则可以在查询中进行分页,并使用SKIP和{{3}处理整个数据的各个部分}。

MATCH (p:Person)
WHERE p.created_at > 1502882338889 // given a timestamp...
RETURN p