Neo4j Cypher filtrado basado en parámetros del mapa

Basado en la pregunta anterior:

Estructura de consulta Neo4j Cypher y optimización del rendimiento Filtrado de nodos Neo4j Cypher por comprensión de patrones

Finalmente he refactorizado mi consulta a lo siguiente:

MATCH (parentD)-[:CONTAINS]->(childD:Decision) 
    WHERE id(parentD) = {decisionId} 
        MATCH (childD)<-[:SET_FOR]-(equalFilterValue)-[:SET_ON]->(equalFilterCharacteristic) 
            WHERE ALL(key IN keys({equalFilters}) WHERE id(equalFilterCharacteristic) = toInt(key) AND equalFilterValue.value = ({equalFilters}[key]))  
    WITH DISTINCT childD  
        MATCH (childD)<-[:SET_FOR]-(rangeFilterValue)-[:SET_ON]->(rangeFilterCharacteristic) 
            WHERE ALL(key IN keys({rangeFilters}) WHERE id(rangeFilterCharacteristic) = toInt(key) AND ({rangeFilters}[key])[0] <= rangeFilterValue.value <= ({rangeFilters}[key])[1]) 
WITH * MATCH (childD)-[ru:CREATED_BY]->(u:User)  
RETURN ru, u, childD AS decision 
SKIP 0 LIMIT 100

Esta consulta funciona bien si cada*filter type (map) solo tiene una clave, por ejemplo:

queries.add(new InQuery(integerCharacteristic.getId(), 30));

o

queries.add(new InQuery(stringCharacteristic.getId(), "Two"));

pero falla cuando agrego 2 o más condiciones, por ejemplo:

queries.add(new InQuery(integerCharacteristic.getId(), 30));
queries.add(new InQuery(stringCharacteristic.getId(), "Two"));

La siguiente consulta no funciona como se esperaba y mis aserciones de prueba fallan:

MATCH (parentD)-[:CONTAINS]->(childD:Decision) 
WHERE id(parentD) = {decisionId} 
    MATCH (childD)<-[:SET_FOR]-(inFilterValue)-[:SET_ON]->(inFilterCharacteristic) 
        WHERE ALL(key IN keys({inFilters}) WHERE id(inFilterCharacteristic) = toInt(key) AND ({inFilters}[key]) IN inFilterValue.value) 
WITH * MATCH (childD)-[ru:CREATED_BY]->(u:User)  
RETURN ru, u, childD AS decision 
SKIP 0 LIMIT 100

El parámetro:

inFilters = {3153=30, 3151=Two}

Por qué no funciona cuandoinFilters mapa contiene 2 o más claves y cómo hacerlo funcionar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta