Neo4j 在cypher查询中无法识别索引

Neo4j 在cypher查询中无法识别索引,neo4j,cypher,Neo4j,Cypher,我试图在本地控制台中重现数据集和查询。 我创建了节点和关系 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)<

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

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

但是现在,相同的查询没有错误,但没有返回任何内容。我做错了什么。从web控制台创建索引的语法不是很清楚。我做错了什么

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

有三种方法可以将现有节点放入索引:

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

  • 您可以阅读有关neo4j索引的更多信息。

    如果在创建索引之前这些索引不存在,那么运行查询将不会返回任何内容,很可能是因为索引中没有这些值的引用。很抱歉,文档不清楚。我使用的是cypher,我是否必须将剧院的每个节点索引为场馆索引,将每个城市索引为城市?从创建索引选项卡,正确的格式也不清楚。我是新手,如果我从零开始使用莎士比亚数据集,我如何在cypher中做到这一点?是否有任何方法可以同时创建和索引。感谢您的帮助如果您查看图表设置,没有索引的迹象,那么他们是如何做到的?不幸的是,索引无法通过Cypher创建、查看或以其他方式与之交互。Cypher严格用于查询数据。他们正在使用的数据库可能已经设置为在幕后索引适当的属性。我建议您阅读,尤其是。但这只适用于自动索引,书中使用的索引是手动创建的,节点也是手动添加的。控制台使用技巧将您看到的索引名转换为自动索引名。
    neo4j-sh (0)$ index --indexes
    ==> Node indexes:
    ==>   venues
    ==>   cities
    ==>   authors
    ==> 
    ==> Relationship indexes: