Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对neo4j中的条件进行优先排序_Neo4j_Cypher_Nosql - Fatal编程技术网

如何对neo4j中的条件进行优先排序

如何对neo4j中的条件进行优先排序,neo4j,cypher,nosql,Neo4j,Cypher,Nosql,我想对条件给出优先顺序,比如,如果有3个条件要匹配,我想要总共20个结果,那么首先它匹配第一个条件,如果它给出20个结果,那么其他条件不匹配,如果第一个条件给出的结果少于20个,那么它匹配第二个条件,如果第一个和第二个条件的总和第二个条件的结果大于20,则给出前20个结果,第三个条件不匹配,第三个条件也会出现同样的情况。如果所有匹配都没有给出20个结果,那么它将3个条件的结果结合起来,并添加一些随机结果,使其成为20。我想我理解您的要求。像这样的怎么样 OPTIONAL MATCH (node:

我想对条件给出优先顺序,比如,如果有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

非常感谢这是我想要的,这是一个轻微的修改,我们必须使用可选的匹配,而不是直接匹配,否则第二个或第三个匹配的结果将受到影响,如果第一个匹配给出零结果。