我试图在我的本地控制台中重现shakespeare数据集和查询。 我创建了节点和关系。
neo4j-sh (0)$ START theater=node:venues(theatre = 'Theatre Royal'), newcastle=node:cities(city = 'Newcastle'), bard=node:authors('firstname:William AND lastname:Shakespeare') MATCH (newcastle)<-[:IN*1..4]-(theater)<-[:VENUE]-(performance)-[:PERFORMED]->(play)<-[w:WROTE]-(bard) WHERE w.date > 1608 RETURN play;
==> MissingIndexException: Index `authors` does not exist
没有识别作者,场地和城市索引,所以我去了 添加和删除索引 标签并创建了这些索引。 这是屏幕转储
neo4j-sh (0)$ index --indexes
==> Node indexes:
==> venues
==> cities
==> authors
==>
==> Relationship indexes:
但是现在,相同的查询没有错误但没有返回任何内容。我究竟做错了什么。从Web控制台创建索引的语法不是那么清楚。我究竟做错了什么?
答案 0 :(得分:5)
创建新索引时,现有节点不会自动添加到索引。将自动添加新创建/编辑的节点,但您必须手动处理现有节点。
有三种方法可以将现有节点放入索引中:
Index
命令SET
操作以强制它们被触摸(即SET myNode.prop = myNode.prop
)您可以阅读有关neo4j索引in the documentation的更多信息。