如何对neo4j中的条件进行优先排序
我想对条件给出优先顺序,比如,如果有3个条件要匹配,我想要总共20个结果,那么首先它匹配第一个条件,如果它给出20个结果,那么其他条件不匹配,如果第一个条件给出的结果少于20个,那么它匹配第二个条件,如果第一个和第二个条件的总和第二个条件的结果大于20,则给出前20个结果,第三个条件不匹配,第三个条件也会出现同样的情况。如果所有匹配都没有给出20个结果,那么它将3个条件的结果结合起来,并添加一些随机结果,使其成为20。我想我理解您的要求。像这样的怎么样如何对neo4j中的条件进行优先排序,neo4j,cypher,nosql,Neo4j,Cypher,Nosql,我想对条件给出优先顺序,比如,如果有3个条件要匹配,我想要总共20个结果,那么首先它匹配第一个条件,如果它给出20个结果,那么其他条件不匹配,如果第一个条件给出的结果少于20个,那么它匹配第二个条件,如果第一个和第二个条件的总和第二个条件的结果大于20,则给出前20个结果,第三个条件不匹配,第三个条件也会出现同样的情况。如果所有匹配都没有给出20个结果,那么它将3个条件的结果结合起来,并添加一些随机结果,使其成为20。我想我理解您的要求。像这样的怎么样 OPTIONAL MATCH (node:
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
非常感谢这是我想要的,这是一个轻微的修改,我们必须使用可选的匹配,而不是直接匹配,否则第二个或第三个匹配的结果将受到影响,如果第一个匹配给出零结果。