J'ai cette méthode pour trouver tous les chemins d'un nœud de départ, et renvoyer les chemins avec la somme de la valeur Score dans chaque nœud, pour chaque chemin.Neo4j Additionner les valeurs des nœuds dans le chemin
public List<PathScore> GetHighScorePath(string nodeName)
{
try
{
List<PathScore> result =
this.client.Cypher.Match("p=(n)-[*]->(leaf)")
.Where((LogEvent n) => n.Name == nodeName)
.AndWhere("Not ((leaf)-->(n))")
.ReturnDistinct(p => new PathScore
{
Nodes = Return.As<IEnumerable<Node<LogEvent>>>("nodes(p)"),
Relationships = Return.As<IEnumerable<RelationshipInstance<Pivot>>>("rels(p)"),
pScore = Return.As<int>("REDUCE(total = 0, n IN nodes(p) | total + n.Score)")
})
.Results.ToList();
return result;
}}
ceci est mon résultat chemin classe
public class PathScore
{
public IEnumerable<Node<LogEvent>> Nodes { get; set; }
public IEnumerable<RelationshipInstance<Pivot>> Relationships { get; set; }
public int pScore;
}
Mais je reçois ce msg d'erreur Neo4j
Neo4j returned a valid response, however Neo4jClient was unable to deserialize into the object structure you supplied.
je crois que l'erreur réside dans la partie où je retourne le score dans le cadre de l'objet retourné. Ceci est la ligne qui est à l'origine de l'erreur:
pScore = Return.As<int>("REDUCE(total = 0, n IN nodes(p) | total + n.Score)")
ok moi stupide. J'ai omis la méthode d'accès get set pour ma propriété pScore – Koh
Cela signifie-t-il que * fonctionne * maintenant? –
oui c'est. C'est en fait une erreur stupide de ma part. affichera une réponse pour cela pour fermer cela – Koh