我正在使用一个小的Clojure脚本,它将节点批量插入我的Neo4j实例。 为了显示这些节点,我使用Spring Data Neo4j的基于spring的webapp。 我还创建了一个代表节点的小域对象。
当我使用webapp插入节点时,它将被加载并显示开箱即用。但是当我尝试加载已由外部脚本插入的节点时,无法找到它。为了兼容,我认为足以将 _ 类型 _ 属性添加到域类的FQN中。但在我看来,还有更多工作要做。
我正在使用Neo4j 1.8.2服务器和SDN 2.2.2
你能给我一个提示吗?
提前致谢。
最佳, 马库斯
答案 0 :(得分:5)
Spring Data Neo4j(SDN)使用TypeRepresentationStrategy
。如果未明确配置SDN,则默认情况下使用IndexingNodeTypeRepresentationStrategy
和IndexingRelationshipTypeRepresentationStrategy
。这些策略为其所有节点实体保留一个名为“__types__”的索引,为其所有关系实体保留一个名为“__rel_types__”的索引。由SDN创建的所有节点或关系实体都将添加到相应的索引中。
如果您正在使用SDN的存储库基础结构并调用yourEntityRepo.findAll()
,则将查询“__types __”(或“__rel_types__”)索引以获取此特定类型的所有实体。
您的脚本可能不会更新这些索引。看看reindexing solution described on the neo4j google group。