Java MissingMethodException-org.neo4j.kernel.impl.coreapi.schema.IndexDefinitionImpl.createNode()-Groovy

Java MissingMethodException-org.neo4j.kernel.impl.coreapi.schema.IndexDefinitionImpl.createNode()-Groovy,java,groovy,neo4j,Java,Groovy,Neo4j,事实上,我在这件事上纠缠了好几个小时 我的代码很简单,只想使用带标签的索引添加几个节点。 如果没有索引(不要创建createDeferredSchemaIndex),代码就可以正常工作 我的例外是: 我错过了什么?我正在使用Groovy 2.3.7+Neo4j 2.1.5 例如->我的完整代码:问题发生在110行 我的Json文件是:(作为UTF-8文件)在第66行,您正在重新分配批处理变量。替换 batch = batch.createDeferredSchemaIndex( macMorp

事实上,我在这件事上纠缠了好几个小时

我的代码很简单,只想使用带标签的索引添加几个节点。 如果没有索引(不要创建createDeferredSchemaIndex),代码就可以正常工作

我的例外是:

我错过了什么?我正在使用Groovy 2.3.7+Neo4j 2.1.5

例如->我的完整代码:问题发生在110行

我的Json文件是:(作为UTF-8文件)

在第66行,您正在重新分配
批处理
变量。替换

batch = batch.createDeferredSchemaIndex( macMorphoTagLabel ).on( 'tag' ).create();


你能试试
batch.createNode(*macMorphoTagArray,tag:previousWordTag.macMorphoTag)
运气不佳,得到
groovy.lang.MissingMethodException:没有方法签名:org.neo4j.kernel.impl.coreapi.schema.IndexDefinitionImpl.createNode()适用于参数类型:(java.util.LinkedHashMap,org.neo4j.graphdb.DynamicLabel)值:[[tag:START],MacMorphoTag]位于org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:56)位于org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
Perfect!这就是问题所在。我在这里回答了一个老问题,这个问题使用了几个批处理变量,但没有检查方法return。。我真丢脸。另一个快速帮助,如果您看到了我的createNode代码,我实际上将自己的ID设置为节点,只是为了在处理三元组数组的节点上拥有正确的ID。它需要花费大量的时间(比没有我的ID慢10倍)来执行。。这是一种不好的做法吗?您提供的id基本上就是存储文件中的位置。如果使用随机长度,文件将变得巨大。最佳做法是使用序列号或依赖createNode返回的ID并传入一个。由于我的问题,数据会立即插入,并且我使用的是带自动递增的长变量,看起来不错。我只是用我的数据方法得到了太多的关系:一个节点-单词指向节点组,它有一个值数组(总是3个),它指向3个标记节点(按数组中的节点ID)。而这些团体必须与人际关系保持联系。。我需要多考虑一下。。一个33MB的文本文件现在是一个150MB以上的数据库127,仅用于关系。。o、 o这让查询变得很糟糕。我只是想知道我的真实交易文件中的索引内容没有按时发生。插入之后,我使用标签模式索引进行了一次查询,花了4分钟<代码>匹配(单词:Palavra{word:'Jersei'})返回单词


batch = org.neo4j.unsafe.batchinsert.BatchInserters.inserter(store,config)
batch = batch.createDeferredSchemaIndex( macMorphoTagLabel ).on( 'tag' ).create();
...

Label macMorphoTagLabel = DynamicLabel.label( 'MacMorphoTag' );

def Label[] macMorphoTagArray = [macMorphoTagLabel]
if (!tags[previousWordTag.macMorphoTag]) {
                        tags[previousWordTag.macMorphoTag] = batch.createNode([tag: previousWordTag.macMorphoTag], macMorphoTagArray)
                    }
batch = batch.createDeferredSchemaIndex( macMorphoTagLabel ).on( 'tag' ).create();
batch.createDeferredSchemaIndex( macMorphoTagLabel ).on( 'tag' ).create();