简体   繁体   English

在OrientDB 2.2.17中声明的LONG-EMBEDDED-LIST属性上使用“ BETEEN”运算符

[英]Using “BETEEN” operator on a LONG-EMBEDDED-LIST property declared in OrientDB 2.2.17

I am using OrientDB 2.2.17 (enterprise edition) and I have a problem searching on the data: 我正在使用OrientDB 2.2.17(企业版),但在搜索数据时遇到问题:

  1. I have a vertex called: EN70 with a property: EP70_4 from type 'embedded list = LONG'. 我有一个名为:EN70的顶点,其属性为:'embedded list = LONG'类型的EP70_4。

  2. I added a record to this vertex with the value of [2,3,4] in this 'EP70_4' property. 我在“ EP70_4”属性中为此值添加了一条记录,其值为[2,3,4]。

  3. The index on this property: Not_Unique (sbtree). 该属性的索引:Not_Unique(sbtree)。 [must support range queries] [必须支持范围查询]

  4. SELECT * FROM EN70 WHERE (EP70_4 >= 1) is working and returns my record. SELECT * FROM EN70 WHERE(EP70_4> = 1)正在工作并返回我的记录。

  5. SELECT * FROM EN70 WHERE (EP70_4 <= 3) is working and returns my record. SELECT * FROM EN70 WHERE(EP70_4 <= 3)正在工作并返回我的记录。

  6. The operator "Between" is not woking and throw exception: SELECT * FROM EN70 WHERE (EP70_4 BETWEEN 1 AND 3 ) 运算符“ Between”未唤醒并抛出异常:SELECT * FROM EN70 WHERE(EP70_4在1和3之间)

  7. I tried to simulate a "between" operator: SELECT * FROM EN70 WHERE ((EP70_4 >= 1) AND (EP70_4 <= 3)) IS NOT WORKING but it is not working. 我试图模拟一个“介于”运算符:SELECT * FROM EN70 WHERE((EP70_4> = 1)AND(EP70_4 <= 3))不起作用,但不起作用。

both sections 6 and 7 throws an exception: 第6节和第7节均引发异常:

Error on using index EN70.EP70_4 in query 'SELECT * FROM EN70 WHERE (EP70_4 BETWEEN 1 AND 3 )'. 在查询“ SELECT * FROM EN70 WHERE(EP70_4在1和3之间)”中使用索引EN70.EP70_4时出错。 Probably you need to rebuild indexes. 可能需要重建索引。 Now executing query using cluster scan java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long at com.orientechnologies.common.serialization.types.OLongSerializer.preprocess(OLongSerializer.java:36) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.iterateEntriesBetweenAscOrder(OSBTree.java:1474) at com.orientechnologies.orient.core.index.sbtree.local.OSBTree.iterateEntriesBetween(OSBTree.java:771) at com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine.iterateEntriesBetween(OSBTreeIndexEngine.java:185) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doIterateIndexEntriesBetween(OAbstractPaginatedStorage.java:2065) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.iterateIndexEntriesBetween(OAbstractPaginatedStorage.java:2053) at com.orientechnologies.orient.core.index.OIndexMultiValues.iterateEntriesBetween(OIndexMultiValues.java:275) at com.orientechnologies.orient. 现在使用集群扫描java.lang.ClassCastException执行查询:java.util.ArrayList无法在com.orientechnologies.common.serialization.types.OLongSerializer.preprocess(OLongSerializer.java:36)处转换为java.lang.Long。 com.orientechnologies.orient.core.index.sbtree.local.OSBTree.iterateEntriesBetween(OSBTree.java:771)上的orientechnologies.orient.core.index.sbtree.local.OSBTree.iterateEntriesBetweenAscOrder(OSBTree.java:1474)。 com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doIterateIndexEntryBetween(OAbstractPaginatedStorage.java:2065)处的com.orientechnologies.orient.core.index.engine.OSBTreeIndexEngine.iterateEntriesBetween(OSBTreeIndexEngine.java:185)。 orient.core.storage.impl.local.OAbstractPaginatedStorage.iterateIndexEntriesBetween(OAbstractPaginatedStorage.java:2053)位于com.orientechnologies.orient.core.index.OIndexMultiValues.iterateEntriesBetween(OIndexMultiValues.java:275)位于com.orientechnologies.orient。 core.index.OIndexAbstractDelegate.iterateEntriesBetween(OIndexAbstractDelegate.java:104) at com.orientechnologies.orient.core.index.OIndexTxAwareMultiValue.iterateEntriesBetween(OIndexTxAwareMultiValue.java:339) at com.orientechnologies.orient.core.sql.operator.OQueryOperatorBetween.executeIndexQuery(OQueryOperatorBetween.java:131) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2184) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommandExecutorSQLSelect.java:1001) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512) at com.orientechnologies.orient.core.sql.OCommandExecu com.orientechnologies.orientOcore.core.sql.operator上的core.index.OIndexAbstractDelegate.iterateEntriesBetween(OIndexAbstractDelegate.java:104)位于com.orientechnologies.orient.core.index.OIndexTxAwareMultiValue.iterateEntriesBetween(OIndexTxAwareMultiValue.java:339) com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchInClasses(OCommand:ec100.SQL)上的executeIndexQuery(OQueryOperatorBetween.java:131)位于com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.searchForIndexes(OCommandExecutorSQLSelect.java:2184)在com.orientechnologies.com的com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.assignTarget(OCommandExecutorSQLSelect.java:530)的com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.assignTarget(OCommandExecutorSQLResultsetAbstract.java:209)处。 .sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:512)位于com.orientechnologies.orient.core.sql.OCommandExecu torSQLSelect.execute(OCommandExecutorSQLSelect.java:488) at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2624) at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2570) 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:169) at com.orientechnologies.orient.serve com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:74)上的torSQLSelect.execute(OCommandExecutorSQLSelect.java:488)在com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.execute com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2570)处的com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java: 69。 java:37)在com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.service(ONetworkProtocolHttpAbstract.java:169)在com.orientechnologies.orient.serve r.network.protocol.http.ONetworkProtocolHttpAbstract.execute(ONetworkProtocolHttpAbstract.java:622) at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:77) r.network.protocol.http.ONetworkProtocolHttpAbstract.execute(ONetworkProtocolHttpAbstract.java:622)位于com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:77)

What can it be??? 会是什么??? Please help me... 请帮我...

我会说这是一个错误,我强烈建议您在这里进行报告: https : //github.com/orientechnologies/orientdb/issues

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM