neo4j-将gremlin查询转换为cypher的问题
我在最近的一个工作项目中使用了NEO4j数据库 最近,我们注意到Cypher查询比Gremlin运行得更快,所以我们决定转换查询。我们正在使用.Net图形客户端运行查询 有一个小精灵的查询,我在转换成密码时遇到了麻烦 ----Gremlin(这可以工作并生成节点(CustomerNode)的结果)…应该是CustomerNode周围的括号,但编辑器不会接受)neo4j-将gremlin查询转换为cypher的问题,neo4j,cypher,gremlin,neo4jclient,Neo4j,Cypher,Gremlin,Neo4jclient,我在最近的一个工作项目中使用了NEO4j数据库 最近,我们注意到Cypher查询比Gremlin运行得更快,所以我们决定转换查询。我们正在使用.Net图形客户端运行查询 有一个小精灵的查询,我在转换成密码时遇到了麻烦 ----Gremlin(这可以工作并生成节点(CustomerNode)的结果)…应该是CustomerNode周围的括号,但编辑器不会接受) var results2=graphClient.RootNode .Out(“HasApplications”) .OutE(“哈斯公司
var results2=graphClient.RootNode
.Out(“HasApplications”)
.OutE(“哈斯公司”)
.InV(p=>p.Id==companyId,StringComparison.Ordinal)
.Out(“HasConfigurationRoot”)
.Out(“hastcustomers”)
.作为(“客户”)
.OutE(“hasConfigurationStatus”)
.InV(p=>p.Status==configStatus,StringComparison.Ordinal)
.OutE(“HasOpportunities”)
.InV(p=>p.ConfigurationId==ConfigurationId,StringComparison.Ordinal)
.BackV(“客户”);
var testResults2=results2.ToList();
--------Cypher(见下文……这不起作用)
var results=graphClient.Cypher.Start(“根”,“节点(0)”)
.Match(“(根)-[ha:HasApplications]->(应用)-[hs:HasCompanys]->公司-[hcr:HasConfigurationRoot]->(ConfigurationRoot)-[hc:HasCustomers]->(客户)嗨,Patrick-首先,看起来您运行的是一个非常旧版本的Neo4jClient。您可以升级吗?您可以将节点模型放在上面,然后在这里共享吗?我知道了,伙计们…只需在语句中做匹配部分:。匹配(((根)-[ha:HasApplications]->(应用)-[hs:HasCompanys]->公司-[hcr:HasConfigurationRoot]->]>(ConfigurationRoot)-[hc:HasCustomers]->(Customer)-[hcs:HasConfigurationStatus]-(ConfigurationStatus)-[ho:HasOpportunities]-(Opportunity)”)很酷,您可以在
var results2 = graphClient.RootNode
.Out<ApplicationNode>("HasApplications")
.OutE("HasCompanies")
.InV<CompanyNode>(p => p.Id == companyId, StringComparison.Ordinal)
.Out<ConfigurationRootNode>("HasConfigurationRoot")
.Out<CustomerNode>("HasCustomers")
.As<CustomerNode>("Customer")
.OutE("HasConfigurationStatuses")
.InV<ConfigurationStatusNode>(p => p.Status == configStatus, StringComparison.Ordinal)
.OutE("HasOpportunities")
.InV<OpportunityNode>(p => p.ConfigurationId == configurationId, StringComparison.Ordinal)
.BackV<CustomerNode>("Customer");
var testResults2 = results2.ToList();
var results = graphClient.Cypher.Start("root", "node(0)")
.Match("(root)-[ha:HasApplications]->(Application)-[hs:HasCompanies]->Company-[hcr:HasConfigurationRoot]->(ConfigurationRoot)-[hc:HasCustomers]->(Customer)<-[hcs:HasConfigurationStatuses]-(ConfigurationStatus)<-[ho:HasOpportunities]-(Opportunity)")
.Where<CompanyNode>(Company => Company.Id == companyId)
.And().Where<ConfigurationStatusNode>(ConfigurationStatus => ConfigurationStatus.Status == configStatus)
.And().Where<OpportunityNode>(Opportunity => Opportunity.ConfigurationId == configurationId);
var x = results.Return<Node<CustomerNode>>("Customer").Results;