Pracuję nad prototypem, w którym zapisałem wszystkie moje szczegóły filmu zapisane na neo4j. Używam Pythona jako mojego języka programowania.
Teraz chcę dowiedzieć się, które filmy oceniłem na określonym poziomie (powiedzmy 10.0). W tym celu napisałem następującą kwerendę Cypher:
START me=node(1)
MATCH me-[r:likes]-> movies
WHERE has(r.Ratings) and r.Ratings = "10.0"
RETURN movies
Działa to dobrze na webadminie neo4j. Jednak gdy uruchamiam to samo za pomocą pythona:
myMovies = db.query("START me=node({id}) MATCH me-[r:likes]-> movies WHERE has(r.Ratings) and r.Ratings = "10.0" RETURN movies",id=user["nodeID"])
Pojawia się następujący błąd:
Traceback (most recent call last):
File "GraphTest.py", line 228, in <module>
test.findTaste("Paritosh Kumar")
File "GraphTest.py", line 31, in findTaste
taste = self.BuildTasteForUser(user)
File "GraphTest.py", line 52, in BuildTasteForUser
myMovies = db.query("START me=node({id}) MATCH me-[r:likes]-> movies WHERE has(r.Ratings) and r.Ratings = "10.0" RETURN movies",id=user["nodeID"])
File "/usr/local/lib/python2.7/dist-packages/neo4j/__init__.py", line 155, in query
return self._cypher_engine.execute(query, **params)
File "/usr/local/lib/python2.7/dist-packages/neo4j/cypher.py", line 31, in execute
return ExecutionResult(self._engine.execute(query,to_java(params)))
File "/usr/local/lib/python2.7/dist-packages/neo4j/_backend.py", line 156, in decorator
return fn(*args, **kwargs)
jpype._jexception.CypherExceptionPyRaisable: unknown function
"START me=node({id}) MATCH me-[r:likes]-> movies WHERE has(r.Ratings) and r.Ratings = "10.0" RETURN movies"
Jestem nowy dla Cyphera i neo4j jako takiego i nie jestem pewien, dlaczego tak się dzieje. Czy ktoś mógłby mi pomóc?
Regds, Paritosh
Odpowiedzi:
0 dla odpowiedzi № 1Użyj !(15.11.9) operator:
START me=node(1)
MATCH me-[r:likes]-> movies
WHERE r.Ratings! = "10.0"
RETURN movies