duterscmy / ccks2019-ckbqa-4th-codes

中文知识库问答代码,CCKS2019 CKBQA评测第四名解决方案
476 stars 91 forks source link

neo4j建立索引 #29

Open 1234560o opened 4 years ago

1234560o commented 4 years ago

作者,您好,我在用neo4j-admin导入所有数据后发现查询很慢,因此考虑建立索引。但是建立索引试了很多次都无法成功(我试了少量数据的时候是可以成功的,采用create constraint on (s:Teacher) assert s.name is unique方式建立),请问作者当时是怎么处理这个问题的?还是对于大量数据直接就建立索引成功了?

duterscmy commented 4 years ago

我是用的“CREATE INDEX ON:Entity(name)”这条语句,参考的https://www.jianshu.com/p/91f3e214b47e这个博客,很大的数据也很快就能建完

1234560o commented 4 years ago

我这个也试了,也是一样的报错信息。我使用CREATE INDEX ON:Entity(id)建立索引能成功,通过id搜索速度明显快很大了,但是name索引建立不成功 Indexes ON :Entity(id) ONLINE ON :Entity(name) FAILED

443874255 commented 4 years ago

我这个也试了,也是一样的报错信息。我使用CREATE INDEX ON:Entity(id)建立索引能成功,通过id搜索速度明显快很大了,但是name索引建立不成功 Indexes ON :Entity(id) ONLINE ON :Entity(name) FAILED

你好 请问你解决这个问题了吗

1234560o commented 4 years ago

@443874255 我后来查了下日志,我的原因是三元组里面有些实体太长了,neo4j里面的建立索引对长度有限制,去掉太长了的就成功了。

443874255 commented 4 years ago

@443874255 我后来查了下日志,我的原因是三元组里面有些实体太长了,neo4j里面的建立索引对长度有限制,去掉太长了的就成功了。

嗯嗯 我也刚在google上找到了类似的问题 谢谢啦

FreedomXD commented 4 years ago

@443874255 我后来查了下日志,我的原因是三元组里面有些实体太长了,neo4j里面的建立索引对长度有限制,去掉太长了的就成功了。

你好呀,我也进行到这一步了,通过 https://neo4j.com/docs/operations-manual/current/performance/index-configuration/#index-configuration-limitations 这里的文档,写的是4k,但4k删掉也还是报错,甚至我用下面语句 MATCH (n:Entity) WHERE size(n.name) > 3072 DETACH DELETE n 删掉了大于3k的节点,但还是导入失败,想知道这里的索引限制到底是多少呢?谢谢!

1234560o commented 4 years ago

@FreedomXD 我也不知道长度限制多少,可能不同版本长度限制不一样,我是将实体长度超过100的都去掉了,因为我觉得太长了算不上一个实体,且数量也很少

FreedomXD commented 4 years ago

@FreedomXD 我也不知道长度限制多少,可能不同版本长度限制不一样,我是将实体长度超过100的都去掉了,因为我觉得太长了算不上一个实体,且数量也很少

我最后改成1000,然后存进去了,谢谢