Вы сможете сделать это, если сможете отправить параметр списка, содержащий карты значений, которые вы планируете использовать.Например, при условии, что параметр списка:
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
Из-за UNWIND в коллекции каждый элемент коллекции будет иметь свою собственную строку, а последующие MATCH и CALL будут выполняться в соответствии сстрока, поэтому результаты вашего решения должны содержать любое решение, которое соответствует связанным критериям.