Отправка параметров в APOC в Cypher Neo4J - PullRequest
0 голосов
/ 26 января 2019

Мне нужно отправить несколько идентификаторов отношений в функцию APOC в моем запросе Neo4J Cypher:

PROFILE UNWIND $contexts as cons 
WITH cons 
CALL apoc.index.relationships('TO','context:cons') 
YIELD rel, start, end 
WITH DISTINCT rel, start, end 
WHERE rel.user='15229100-b20e-11e3-80d3-6150cb20a1b9' 
RETURN DISTINCT start.uid AS source_id, start.name AS source_name, end.uid AS target_id, end.name AS target_name, rel.uid AS edge_id, rel.context AS context_id, rel.statement AS statement_id, rel.weight AS weight;

Мои параметры следующие:

{
 "contexts": [
 "09a73400-20ab-11e9-a5b3-9fb3da66a7cb",
 "0113a5c0-1f8f-11e9-9ff3-8379606e6d34",
 "3fb1d040-1f85-11e9-964f-7dc221bb473c",
 "1d0d8ed0-1f85-11e9-964f-7dc221bb473c"
 ]
}

Когда я отправляю их как

 CALL apoc.index.relationships('TO','context:09a73400-20ab-11e9-a5b3-9fb3da66a7cb 0113a5c0-1f8f-11e9-9ff3-8379606e6d34 3fb1d040-1f85-11e9-964f-7dc221bb473c 1d0d8ed0-1f85-11e9-964f-7dc221bb473c')

Работает ...

Как переписать мой запрос выше, чтобы идентификаторы передавались в функцию APOC?

1 Ответ

0 голосов
/ 26 января 2019

Это строка запроса Lucene, поэтому вы должны создать ее или отправить как параметр:

WITH 'context:('+apoc.text.join($contexts,' ')+')' as query
WITH cons 
CALL apoc.index.relationships('TO',query) 
...
...