Neo4j APOC密码查询中的后续函数链

Neo4j APOC密码查询中的后续函数链,neo4j,cypher,neo4j-apoc,Neo4j,Cypher,Neo4j Apoc,我需要组织到apoc.index的后续链(1..Ncalls)中。在函数中,类似以下内容: MATCH (d:Decision)-[:HAS_VALUE_ON]->(ch:Characteristic) WHERE ch.id = 10 CALL apoc.index.in(ch,'HAS_VALUE_ON','property.2.5:7 AND value:45') YIELD node AS decision MATCH (decision)-[:HAS_VALUE_ON]->

我需要组织到
apoc.index的后续链(
1..N
calls)中。在
函数中,类似以下内容:

MATCH (d:Decision)-[:HAS_VALUE_ON]->(ch:Characteristic) WHERE ch.id = 10
CALL apoc.index.in(ch,'HAS_VALUE_ON','property.2.5:7 AND value:45') YIELD node AS decision

MATCH (decision)-[:HAS_VALUE_ON]->(ch:Characteristic) WHERE ch.id = 23
CALL apoc.index.in(ch,'HAS_VALUE_ON','property.1.8:326 OR property.4:17') YIELD node AS decision

MATCH (decision)-[:HAS_VALUE_ON]->(ch:Characteristic) WHERE ch.id = 19
CALL apoc.index.in(ch,'HAS_VALUE_ON','property.15.3:"mike" OR value:43') YIELD node AS decision

RETURN decision
正如您可能看到的,我需要根据apoc.index.in中描述的不同条件过滤
决策集,例如
'property.15.3:“mike”或value:43'
等等


目前,上面的查询不起作用。APOC是否可以链接它,如果可以,请给出一个示例。

如果您可以发送一个列表参数,其中包含您计划使用的值的映射,那么您应该能够做到这一点。例如,提供了以下列表参数:

inputs = [{chId:10, predicate:"property.2.5:7 AND value:45"}, {chId:23, predicate:"property.1.8:326 OR property.4:17"}, {chId:19, predicate:"property.15.3:'mike' OR value:43"}]
(考虑到你所使用的语言,你需要找出巫毒来正确地避开“迈克”的内部引号)

然后可以使用以下查询:

UNWIND $inputs as input
MATCH (ch:Characteristic) 
WHERE ch.id = input.chId AND ()-[:HAS_VALUE_ON]->(ch)
CALL apoc.index.in(ch,'HAS_VALUE_ON', input.predicate) YIELD node AS decision
RETURN decision

由于集合的展开,集合的每个元素都将生成自己的行,并且后续的匹配和调用将按行执行,因此您的决策结果应包含符合相关标准的任何决策。

非常感谢您的回答。我使用Java,我将尝试实现建议的解决方案。我还有一个关于结果集的问题-它将包含满足所有相关标准的决策,还是包含满足任何相关标准的决策?根据我的业务逻辑,我需要只包含满足$inputs中提供的所有相关标准的决策的结果集。