如何为neo4j中的条件赋予优先顺序

How to give preference order to conditions in neo4j

我想对条件进行优先排序,比如如果有 3 个条件要匹配,我想要总共 20 个结果,那么首先它匹配第一个条件,如果它给出 20 个结果,那么其他条件不匹配,如果第一个条件给出少于 20 个结果,然后它匹配第二个条件,如果第一个和第二个条件结果的总和大于 20,那么它给出前 20 个结果并且不匹配第三个条件,第三个条件也会发生同样的情况。如果所有匹配都没有给出 20 个结果,那么它将结合 3 个条件的结果并添加一些随机结果使其成为 20.

我想我明白你想要什么。这样的事情怎么样?

OPTIONAL MATCH (node:Label)
WHERE node.a = 1
WITH collect(node) AS set1
OPTIONAL MATCH (node:Label)
WHERE node.a = 2
WITH set1 + collect(node) AS set2
OPTIONAL MATCH (node:Label)
WHERE node.a = 3
WITH set2 + collect(node) AS set3
UNWIND set3 AS node
RETURN node
LIMIT 20