首页 文章

Cypher查询无法按标签查找节点

提问于
浏览
0

我正在使用neo4j浏览器按标签搜索图表中的节点 . 我知道节点存在且节点上的标签是正确的,但是当我在节点上指定标签时,neo4j找不到它 .

更具体地说,我在neo4j浏览器中使用以下cypher查询:

match (a:Foo) where a.value = "Bar" return a
(no changes, no records)

但是,具有该值的节点与该标签一起存在:

match (a) where a.value = "Bar" return labels(a)
["Foo"]

该标签上有一个索引,但我不知道这是否相关 .

:schema
Indexes
   ON :Foo(value) ONLINE

此外,显式重置标签似乎不起作用:

match (a) where a.value = "Bar" 
set a :Foo
return a

将返回应用了正确标签的节点,但是当我重试原始查询时,它仍然无法找到该节点 .

这在以前工作过,但我最近对我们的堆大小/页面缓存大小/ gc类型进行了一些更改,试图在垃圾收集上运行100%cpu挂起的另一个问题 . 这些更改都不应影响标签 .

以前有没有人有这种经历?

我正在使用Neo4j CE v3.3.0

1 回答

  • 1

    看起来像索引损坏的问题,如我的评论中提到的,然后再次创建索引应该修复它 .

    关于索引是如何被破坏的,我不能说,但你使用的是.0版本,而且那些错误比其他版本更多 . 您可能希望升级到最新的3.3.x版本 .

    您始终可以通过neo4j-admin运行一致性检查,以查看您的图表数据是否还有其他问题 .

相关问题