neo4j 查询错误 "dont know how to compare"

neo4j query error "dont know how to compare"

我使用 hermit reasoner 和 Java 用 Pizza.owl 文件加载了 Neo4j。 当我通过一个简单的查询时:

match (n) where n="name:Pizza" return n;

收到以下错误

 Don't know how to compare that. Left: Node[1]{name:"owl:Thing"} (NodeProxy); Right: "name:Pizza" (String)

NodeProxy 是一种数据类型吗?我怎样才能让他们两个进行比较。我可以在查询时进行转换吗?任何更改整个图节点数据类型的查询?如何查看节点类型?

您正在将节点 n 与字符串 "name:Pizza" 进行比较,这没有意义。您想要的是将节点 n 的 属性 name 与字符串 "Pizza": WHERE n.name = "Pizza" 进行比较。整个查询看起来像这样

MATCH (n)
WHERE n.name = "Pizza"
RETURN n

节点实际上没有类型。看看 Neo4j manual to more about nodes, relationships, properties and labels and about Cypher in general, and the WHERE clause 特别是。