Neo4j,在返回可分页结果的同时查询多个 lucene 索引
Posted
技术标签:
【中文标题】Neo4j,在返回可分页结果的同时查询多个 lucene 索引【英文标题】:Neo4j, querying multiple lucene indexes while returning a pageable result 【发布时间】:2015-10-16 15:22:36 【问题描述】:我一直在尝试编写一个密码查询,它使我能够从多个 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】:为我工作:
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
【讨论】:
第二个查询没有返回任何结果的时候试试console.neo4j.org/r/31fr9c以上是关于Neo4j,在返回可分页结果的同时查询多个 lucene 索引的主要内容,如果未能解决你的问题,请参考以下文章