neo4j-将gremlin查询转换为cypher的问题

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(“哈斯公司

我在最近的一个工作项目中使用了NEO4j数据库

最近,我们注意到Cypher查询比Gremlin运行得更快,所以我们决定转换查询。我们正在使用.Net图形客户端运行查询

有一个小精灵的查询,我在转换成密码时遇到了麻烦

----Gremlin(这可以工作并生成节点(CustomerNode)的结果)…应该是CustomerNode周围的括号,但编辑器不会接受)

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;