如何使用cypher查询从索引中获取随机记录集

时间:2013-01-12 12:43:21

标签: neo4j cypher

使用cypher从特定node_auto_index获取随机记录的语法是什么?

我想有这个例子

START x=node:node_auto_index("uname:*")  RETURN x SKIP somerandomNumber LIMIT 10;

有没有更好的方法不会返回连续的集合?

1 个答案:

答案 0 :(得分:2)

在neo4j中没有类似于SQL的Random()的功能。

你必须在使用cypher之前在SKIP random部分声明随机数(如果你没有直接从控制台查询而你使用neo4j的任何高级语言)   - 这将连续连续地给出节点的随机部分 或者你必须检索所有节点,然后在这些节点上用你的高级语言制作你自己的随机 - 这将为你提供一组随机的ndoes。

或者,为了在cypher中创建伪随机函数,我们可以尝试这样的事情:

START x=node:node_auto_index("uname:*")
WITH x, length(x.uname) as len
WHERE Id(x)+len % 3 = 0
RETURN x LIMIT 10

或根据uname节点的总数或uname param的普通ascii值在此查询中创建复杂的WHERE部分,例如