OrientDB空间查询抛出错误:java.lang.NoSuchFieldError:实例

OrientDB空间查询抛出错误:java.lang.NoSuchFieldError:实例,orientdb,Orientdb,我试图评估OrientDB及其空间功能,但似乎无法从浏览查询窗口运行简单查询 我将orientdb-spatial-2.2.30-dist.jar放在/PATH/orientdb-community-importers-2.2.29/lib/中,并反弹了orientdb 下面是我如何创建空间索引的 OrientVertexType vertexType = graph.getVertexType("Foo"); ODocument location = new ODocument("OPoint

我试图评估OrientDB及其空间功能,但似乎无法从浏览查询窗口运行简单查询

我将orientdb-spatial-2.2.30-dist.jar放在/PATH/orientdb-community-importers-2.2.29/lib/中,并反弹了orientdb

下面是我如何创建空间索引的

OrientVertexType vertexType = graph.getVertexType("Foo");
ODocument location = new ODocument("OPoint");
vertexType.createProperty("location", OType.EMBEDDED, location.getSchemaClass());
ODocument metadata = new ODocument();
metadata.field("ignoreNullValues", "true");
vertexType.createIndex("Foo.location", "SPATIAL", null, metadata, "LUCENE", new String[]{"location"});
一切正常

这是我运行的查询。(我也运行了几个其他查询,但始终得到相同的堆栈跟踪…)

OrientDB信息: 演播室版本:2.2 OrientDB版本:2.2.29 操作系统:Mac

堆栈跟踪:

java.lang.NoSuchFieldError: INSTANCE
    at com.orientechnologies.spatial.functions.OSpatialFunctionAbstractIndexable.getDb(OSpatialFunctionAbstractIndexable.java:69)
    at com.orientechnologies.spatial.functions.OSpatialFunctionAbstractIndexable.searchForIndex(OSpatialFunctionAbstractIndexable.java:57)
    at com.orientechnologies.spatial.functions.OSpatialFunctionAbstractIndexable.results(OSpatialFunctionAbstractIndexable.java:73)
    at com.orientechnologies.spatial.functions.OSTDistanceSphereFunction.estimate(OSTDistanceSphereFunction.java:82)
    at com.orientechnologies.orient.core.sql.parser.OFunctionCall.estimateIndexedFunction(OFunctionCall.java:135)
    at com.orientechnologies.orient.core.sql.parser.OLevelZeroIdentifier.estimateIndexedFunction(OLevelZeroIdentifier.java:60)
    at com.orientechnologies.orient.core.sql.parser.OBaseIdentifier.estimateIndexedFunction(OBaseIdentifier.java:57)
    at com.orientechnologies.orient.core.sql.parser.OBaseExpression.estimateIndexedFunction(OBaseExpression.java:96)
    at com.orientechnologies.orient.core.sql.parser.OExpression.estimateIndexedFunction(OExpression.java:171)
    at com.orientechnologies.orient.core.sql.parser.OBinaryCondition.estimateIndexed(OBinaryCondition.java:91)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.tryIndexedFunctions(OCommandExecutorSQLSelect.java:2318)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2101)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1024)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:211)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:527)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:509)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:485)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:70)
    at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3340)
    at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3278)
    at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69)
    at com.orientechnologies.orient.server.network.protocol.http.command.post.OServerCommandPostCommand.execute(OServerCommandPostCommand.java:106)
    at com.orientechnologies.orient.graph.server.command.OServerCommandPostCommandGraph.execute(OServerCommandPostCommandGraph.java:37)
    at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.service(ONetworkProtocolHttpAbstract.java:173)
    at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.execute(ONetworkProtocolHttpAbstract.java:629)
    at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:81)
$ANSI{green {db=mydb}} Exception `22001A4F` in storage `mydb`

您使用的是2.2.29版本的spatial插件2.2.30。
版本应该是相同的。尝试升级OrientDB或降级Spatial插件

@wolf4ood是正确的,Spatial jar的次要版本需要精确
java.lang.NoSuchFieldError: INSTANCE
    at com.orientechnologies.spatial.functions.OSpatialFunctionAbstractIndexable.getDb(OSpatialFunctionAbstractIndexable.java:69)
    at com.orientechnologies.spatial.functions.OSpatialFunctionAbstractIndexable.searchForIndex(OSpatialFunctionAbstractIndexable.java:57)
    at com.orientechnologies.spatial.functions.OSpatialFunctionAbstractIndexable.results(OSpatialFunctionAbstractIndexable.java:73)
    at com.orientechnologies.spatial.functions.OSTDistanceSphereFunction.estimate(OSTDistanceSphereFunction.java:82)
    at com.orientechnologies.orient.core.sql.parser.OFunctionCall.estimateIndexedFunction(OFunctionCall.java:135)
    at com.orientechnologies.orient.core.sql.parser.OLevelZeroIdentifier.estimateIndexedFunction(OLevelZeroIdentifier.java:60)
    at com.orientechnologies.orient.core.sql.parser.OBaseIdentifier.estimateIndexedFunction(OBaseIdentifier.java:57)
    at com.orientechnologies.orient.core.sql.parser.OBaseExpression.estimateIndexedFunction(OBaseExpression.java:96)
    at com.orientechnologies.orient.core.sql.parser.OExpression.estimateIndexedFunction(OExpression.java:171)
    at com.orientechnologies.orient.core.sql.parser.OBinaryCondition.estimateIndexed(OBinaryCondition.java:91)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.tryIndexedFunctions(OCommandExecutorSQLSelect.java:2318)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2101)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1024)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:211)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:527)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:509)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:485)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:70)
    at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:3340)
    at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:3278)
    at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69)
    at com.orientechnologies.orient.server.network.protocol.http.command.post.OServerCommandPostCommand.execute(OServerCommandPostCommand.java:106)
    at com.orientechnologies.orient.graph.server.command.OServerCommandPostCommandGraph.execute(OServerCommandPostCommandGraph.java:37)
    at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.service(ONetworkProtocolHttpAbstract.java:173)
    at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.execute(ONetworkProtocolHttpAbstract.java:629)
    at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:81)
$ANSI{green {db=mydb}} Exception `22001A4F` in storage `mydb`