免责声明:我是neo4j的初学者。我已经完成了教程。我已经构建了我的数据,并将其加载到graphdb中,我试图验证它是否正确导入。
我不确定我遇到的问题是我在导入或密码查询中所做的事情。
我使用this import tool导入以下文件(以下文件已经过滤,只包含我目前正在调查的行):
application_id节点文件:
application_id:ID(application_id),:LABEL
2036983247,application_id
2037028183,application_id
personal_phone节点文件:
personal_phone:ID(personal_phone),:LABEL
5555551234,personal_phone
关系文件:
:START_ID(personal_phone),:END_ID(application_id),:TYPE
5555551234,2036983247,APPLIED
5555551234,2037028183,APPLIED
我的密码查询:
match p= (a {personal_phone:'5555551234'}) -->(b) return p
在我的搜索结果中,我看到个人电话节点有2个“应用”字样。与每个application_id节点的关系。我希望只看到一个。我哪里错了?
编辑:这就是我所看到的。中心节点是personal_phone
节点。
编辑2:所以我发现使用neo4j shell中的dump
语句我可以获得数据库的导出。我想我会为有问题的节点运行它:
$ dump match p= (a personal_phone:'5555551234'})-->(b) return p;
返回:
begin
create (_5:`application_id` {`application_id`:"2036983247"})
create (_410:`application_id` {`application_id`:"2037028183"})
create (_6928:`personal_phone` {`personal_phone`:"5555551234"})
create _6928-[:`APPLIED`]->_410
create _6928-[:`APPLIED`]->_5
create _6928-[:`APPLIED`]->_410
create _6928-[:`APPLIED`]->_5
;
commit
这表明我肯定有重复的关系。关于如何解决这个问题的任何想法?
答案 0 :(得分:2)
您将单个APPLIED
节点中的两个personal_phone
关系添加到两个不同的application_id
节点。
当您MATCH
来自此personal_phone
节点的所有关系时,您确实希望得到两个APPLIED
关系。
答案 1 :(得分:1)
呃 - 导入的愚蠢错误就是问题所在。它没有引起注意,因为导入了太多不同的文件,但基本上我在我的脚本文件中导入了两次关系文件:
--relationships "f:\temp\r_personal_phone_application_id_APPLIED.csv"
--relationships "f:\temp\r_personal_phone_application_id_APPLIED.csv"