2013-01-12 43 views
1

有什么语法使用暗号特定node_auto_index获得随机记录?如何从索引获得一个随机的记录集与CYPHER查询

我想有这样的例子

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

是否有将不会返回一组连续的更好的办法?

+0

你定义为随机的是什么?你想要它返回任何X项目? – Nicholas

+0

是的,在这种情况下是一组随机的10个用户节点。 – MonkeyBonkey

+0

我不太清楚在引擎盖下的翻译是什么,但我会想象,'启动X =节点:node_auto_index(“UNAME:*”)返回X LIMIT 10;'会使用迭代器的下方是不会消耗太多资源。至于指定随机,我不认为这是一个选项,除非你读了所有这些,然后跳过迭代或什么。 – Nicholas

回答

2

没有类似于SQL的随机()在Neo4j的功能。

您必须声明的随机数在SKIP random部分,使用前CYPHER(你是不是直接从控制台查询情况,并使用与Neo4j的任何上语言) - 这将持续给节点的任意部分一排 或者您必须检索所有节点,并且在您的上层语言中跨越这些节点制作自己的随机文件 - 这会给您一个随机的ndoes集合。

,或者以使暗号伪随机函数,我们可以尝试smthing这样的:

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

或进行复杂的WHERE在基于UNAME节点的总数,还是普通的ASCII此查询部分uname param的值,例如

+0

是的,生成随机数并将其作为参数传入可能是最好的。 –

相关问题