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

时间:2017-11-17 00:10:47

标签: orientdb

我正在尝试评估OrientDB及其Spatial功能,似乎无法从浏览查询窗口运行简单查询

我将orientdb-spatial-2.2.30-dist.jar放在/PATH/orientdb-community-importers-2.2.29/lib/并弹回orient db

以下是我创建空间索引的方法

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"});

一切正常无效

这是我运行的查询。 (我也运行了其他几个查询,但仍然获得相同的堆栈跟踪...)

select from Foo where ST_DWithin(location, "POINT (-97.822 37.751)",20.0) = true

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`

1 个答案:

答案 0 :(得分:1)

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