我有以下Neo4jClient代码
var queryItem = _graphClient
.Cypher
.Start(new
{
n = Node.ByIndexLookup("myindex", "Name", sku),
})
.Match("p = n-[r:Relationship]->ci")
.With("ci , r")
.Return((ci, r) => new
{
N = ci.Node<Item>(),
R = r.As<RelationshipInstance<Payload>>()
})
.Limit(5)
.Results
.OrderByDescending(u => u.R.Data.Frequency);
查询执行正常,但结果未正确排序(即按降序排列)。这也是Payload类。
如果您发现我的代码有问题,请告诉我。 TIA。
答案 0 :(得分:3)
您在.Results
电话后进行排序。这意味着你在.NET中,而不是在Neo4j上。 Neo4j返回任意5个结果,因为Cypher查询不包含排序指令。
将最后三行更改为:
.OrderByDescending("r.Frequency")
.Limit(5)
.Results;
作为一般调试技巧,Neo4jClient做了两件事:
执行显然有效,因此您需要找出查询不同的原因。