首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j 3.5创建索引失败

Neo4j 3.5创建索引失败
EN

Stack Overflow用户
提问于 2018-12-29 08:39:16
回答 1查看 1.1K关注 0票数 0

过了一会儿

代码语言:javascript
复制
neo4j> CREATE INDEX ON :Temporal_Event(name);

我收到了:

代码语言:javascript
复制
2018-12-28 08:37:05.791+0000 INFO  Remote interface available at http://localhost:7474/
2018-12-28 11:11:46.963+0000 ERROR Client triggered an unexpected error [Neo.DatabaseError.General.IndexCorruptionDetected]: Index `Index( GENERAL, :Temporal_Event(name) )` has failed. Drop and recreate it to get it back online. Actual failure:
==================
java.lang.RuntimeException: java.lang.IllegalArgumentException: Index key-value size it to large. Please see index documentation for limitations. | GB+Tree[file:/SSD/data/databases/neo4j-dbpedia-AI.db/schema/index/native-btree-1.0/8/index-8, layout:GenericLayout[version:0.5, identifier:5643935348791705600, fixedSize:false], generation:2/4]
    at org.neo4j.kernel.impl.index.schema.WorkSyncedNativeIndexPopulator.add(WorkSyncedNativeIndexPopulator.java:94)
    at org.neo4j.kernel.impl.api.index.BatchingMultipleIndexPopulator.lambda$flush$2(BatchingMultipleIndexPopulator.java:170)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
    at org.neo4j.helpers.NamedThreadFactory$2.run(NamedThreadFactory.java:122)
Caused by: java.lang.IllegalArgumentException: Index key-value size it to large. Please see index documentation for limitations. | GB+Tree[file:/SSD/data/databases/neo4j-dbpedia-AI.db/schema/index/native-btree-1.0/8/index-8, layout:GenericLayout[version:0.5, identifier:5643935348791705600, fixedSize:false], generation:2/4]
    at org.neo4j.index.internal.gbptree.TreeNodeDynamicSize.validateKeyValueSize(TreeNodeDynamicSize.java:369)
    at org.neo4j.index.internal.gbptree.InternalTreeLogic.insert(InternalTreeLogic.java:353)
    at org.neo4j.index.internal.gbptree.GBPTree$SingleWriter.merge(GBPTree.java:1281)
    at org.neo4j.kernel.impl.index.schema.NativeIndexUpdater.processAdd(NativeIndexUpdater.java:133)
    at org.neo4j.kernel.impl.index.schema.NativeIndexUpdater.processUpdate(NativeIndexUpdater.java:88)
    at org.neo4j.kernel.impl.index.schema.NativeIndexPopulator.processUpdates(NativeIndexPopulator.java:286)
    at org.neo4j.kernel.impl.index.schema.NativeIndexPopulator.add(NativeIndexPopulator.java:164)
    at org.neo4j.kernel.impl.index.schema.WorkSyncedNativeIndexPopulator$IndexUpdateApply.process(WorkSyncedNativeIndexPopulator.java:144)
    at org.neo4j.kernel.impl.index.schema.WorkSyncedNativeIndexPopulator$IndexUpdateWork.apply(WorkSyncedNativeIndexPopulator.java:168)
    at org.neo4j.kernel.impl.index.schema.WorkSyncedNativeIndexPopulator$IndexUpdateWork.apply(WorkSyncedNativeIndexPopulator.java:148)
    at org.neo4j.util.concurrent.WorkSync.doSynchronizedWork(WorkSync.java:231)
    at org.neo4j.util.concurrent.WorkSync.tryDoWork(WorkSync.java:157)
    at org.neo4j.util.concurrent.WorkSync.apply(WorkSync.java:91)
    at org.neo4j.kernel.impl.index.schema.WorkSyncedNativeIndexPopulator.add(WorkSyncedNativeIndexPopulator.java:81)
    ... 5 more

==================, reference 40308cf1-008c-4580-a7d4-19610e3a712d.

我按照消息删除了索引。

如何删除违规节点,以便索引能够正常工作?

如何获得违规节点id?

EN

回答 1

Stack Overflow用户

发布于 2018-12-30 17:59:37

您可以检查不同数据类型( 这里 )的大小限制。

一旦您确定您的数据类型允许的最大大小(比如MAX_SIZE=4036,请在上面的链接上确认)。您可以使用以下查询找到所有违规节点:

匹配(n:Temporal_Event)其中大小(n.name)> MAX_SIZE返回n.id限制10

您可以删除这些节点,也可以只删除任何您喜欢的属性。

如果要删除这些节点,请使用以下查询

匹配(n:Temporal_Event)其中大小(n.name)> MAX_SIZE分离删除n

该查询首先删除这些节点(DETACH)的所有关系,然后删除节点( delete )。

有一些解决办法,我还没有试过,但是您可以检查这个答案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53968021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档