4

我试图在我的本地控制台中重现莎士比亚的数据集和查询。我创建了节点和关系。

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 控制台创建索引的语法不是很清楚。我究竟做错了什么?

4

1 回答 1

5

创建新索引时,现有节点不会自动添加到索引中。新创建/编辑的节点将自动添加,但您必须手动处理现有节点。

您可以通过三种方式将现有节点放入索引中:

  1. Index使用命令使用 Neo4j Shell 手动索引节点
  2. 对您的节点进行无用的SET操作以强制它们被触摸(即SET myNode.prop = myNode.prop
  3. 删除节点并使用相同的属性和关系重新创建它们

您可以在文档中阅读有关 neo4j 索引的更多信息。

于 2013-03-11T19:03:02.533 回答