我正在用neo4J对一个图进行建模,以存储应用编程接口系统的所有关系/查询。例如,API 1 - GET:/api/employee/{email}接口接收电子邮件并返回id。第二个接口是API 2 GET:/api/employee/salary/{e_id},它接受EmployeeId并返回Salary。图形表示如下所示。

例如,给定一封电子邮件,我想编写一个查询,以找出可以从该系统中提取的所有内容。对于上图,输出将类似于:
API 1 - input - email
API 1 - output - employee_id
API 2 - input - employee_id
API 2 - output - Salary如果有更好/更短的路径可以输出特定的数据项,算法需要提出建议。我相信我需要的是单源最短路径算法的变体,但我不确定如何进行。如果有更好的方法对此图建模以提高查询性能,请让我知道
发布于 2020-05-16 21:22:21
假设图中的标签是:Api和:Parameter,并且所有节点都有name属性,那么这个Cypher将返回所有API以及它们的输入和输出参数的列表:
MATCH (a:Api)
WITH a AS apis
MATCH (apis)-[:INPUT]->(ip:Parameter)
WITH apis, COLLECT(ip.name) AS inputParams
MATCH (apis)-[:OUTPUT]->(op:Parameter)
WITH apis, inputParams, COLLECT(op.name) AS outputParams
RETURN apis.name as apiName, inputParams, outputParamshttps://stackoverflow.com/questions/61804327
复制相似问题