我正在尝试评估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`
答案 0 :(得分:1)
您正在使用插件空间版本2.2.30和2.2.29。 版本应该是相同的。尝试升级OrientDB或降级Spatial插件