Ich habe die unten auf Neo4j DatensatzNeo4j Fehler: Typenkonflikt: erwartet Float oder Integer aber war Knoten
create (recipe1:recipe {name: 'recipe-1'})
create (recipe2:recipe {name: 'recipe-2'})
create (recipe3:recipe {name: 'recipe-3'})
create (recipe4:recipe {name: 'recipe-4'})
create (recipe5:recipe {name: 'recipe-5'})
create (recipe6:recipe {name: 'recipe-6'})
create (user1:user {name: 'user-1'})
create (user2:user {name: 'user-2'})
create (user3:user {name: 'user-3'})
create (user4:user {name: 'user-4'})
create
(user1)-[:LIKES]->(recipe1),
(user1)-[:LIKES]->(recipe2),
(user1)-[:LIKES]->(recipe4),
(user2)-[:LIKES]->(recipe4),
(user2)-[:LIKES]->(recipe6),
(user3)-[:LIKES]->(recipe1),
(user3)-[:LIKES]->(recipe3),
(user3)-[:LIKES]->(recipe6),
(user4)-[:LIKES]->(recipe4)
und versuchen, die unter Abfrage auszuführen:
match (user4:user {name: 'user-4'})-[LIKES]->recipe<-[:LIKES]-slm-[:LIKES]->recommendations
where not(user4 = slm) and not(user4-recommendations)
return count(*) AS recommendationsWeight,
recommendations.name AS name
order by recommendationsWeight DESC, name DESC
aber ich bin immer der folgende Fehler:
Type mismatch: expected Float or Integer but was Node (line 2, column 32 (offset: 123))
"where not(user4 = slm) and not(user4-recommendations)"
^
eine Idee, was ich hier falsch mache?
Update:
Was will ich hier tun mit not(user4-recommendations)
ist zu sagen, dass alle Empfehlungen, die user4 keine Beziehung hat mit. Betrachten wir zum Beispiel diese:
match (user4:user {name: 'user-4'}), (recipe1:recipe {name: 'recipe-1'})
create (user4)-[:DISLIKES]->(recipe1)
So umfassen sollte das Ergebnis meiner Empfehlung Abfrage nicht recipe1
als Benutzer damit vor interagiert hat.
Ich glaube, ich auch einen weiteren Fehler auf meine Frage haben: 'match (user4: Benutzer {name : 'user-4'}) - [LIKES] 'wo sollte es wirklich sein:' match (user4: user {name: 'user-4'}) - [: LIKES] '. – tugberk