Neo4j,在返回可分页结果的同时查询多个lucene索引

时间:2015-07-26 11:00:15

标签: neo4j lucene cypher

我一直在尝试编写一个密码查询,这使我能够从多个lucene索引中获取结果,同时启用可分页结果。

据我所知:

START u=node:Index1(lucene_expression1) 
RETURN COLLECT(u) as clt 
START u=node:Index2(lucene_expression2) 
RETURN clt + COLLECT(u) as clt
UNWIND clt AS u 
WITH DISTINCT u 
RETURN u ORDER BY u.name SKIP 0 LIMIT 10

问题是当第二个索引没有返回任何结果时, 没有返回结果,忽略第一个索引返回的结果。

我认为这是因为执行顺序,除非COLLECT或COUNT是唯一返回的字段,否则空结果集总是返回空结果集。

为了澄清,我知道我可以使用UNION来获取完整的数据集,但是我需要在Neo4j之外应用分页,我希望避免这种分页。

由于

1 个答案:

答案 0 :(得分:0)

适合我:

START n=node:node_auto_index(name="Neo2")
WITH collect(n) AS c
START n=node:node_auto_index("name:Neo")
WITH c + collect(n) AS c2 UNWIND c2 AS n
RETURN n
SKIP 0 LIMIT 10

请参阅:http://console.neo4j.org/r/wrokab