Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
04-29-2022 01:37 AM
Hello,
I have to write a query, that search nodes with multiple criteria and i need help to do it, for now i have 3 criteria (lists of string) and i do like this :
WITH
['a1','a2'] AS appsList,
['p1'] AS publishersList,
['e1','e2'] as eventTypeList,
['env1', 'env2'] AS envList
CALL apoc.do.when(
size(publishersList)>0,
'MATCH p=(event:event)<-[:event]-(nodes) WHERE ANY(x IN labels(event) WHERE x IN eventTypeList) AND event.publisher IN publishersList RETURN nodes',
'MATCH p=(event:event)<-[:event]-(nodes) WHERE ANY(x IN labels(event) WHERE x IN eventTypeList) RETURN nodes',
{publishersList:publishersList, eventTypeList:eventTypeList}
)
YIELD value
WITH value.nodes as n,collect(value.nodes) as nodes, envList
CALL apoc.do.when(
size(envList)>0,
"MATCH (n) WHERE n.environment IN envList RETURN n",
"RETURN n",
{envList:envList, n:n}
) YIELD value
with collect(value.n) as nodes2, nodes
with apoc.coll.intersection(nodes, nodes2) as interests_intersection
return interests_intersection
I don't know if it is the right way to do this kind of query search with criteria, for now i have 3 criteria but i will have annothers and i don't know if perf will be good ?
what i want is :
if criteria 1 ...
if criteria 2 ....
if criteria 3 ...
.
.
.
else
else
else
return
Thank you for helping
05-03-2022 01:58 PM
Hello @madiskou
What is the data model (labels, types and properties)?
What are the criteria? Labels, types or properties?
Do you want to search on the whole graph?
Regards,
Cobra
All the sessions of the conference are now available online