0

我正在使用 Geomesa 1.1 通过 Java 连接到 Accumulo 1.6.2。我在数据库中查询特定属性(特定列值)没有问题。但是当我尝试运行范围查询(尝试时间和几何范围)时,我得到一个错误。

当我检查 Accumulo 日志时,我看到了这个错误:

exception while doing multi-scan 
    java.lang.ArrayIndexOutOfBoundsException: -1

但是我的代码都没有使用数组。从底层库抛出异常。

这就是我构建CQL过滤器的方式:

Filter cqlFilter = CQL.toFilter("BBOX(where, 160.0, 1.0, 170.0, 3.0)");

可能是什么原因造成的java.lang.ArrayIndexOutOfBoundsException: -1

编辑

更新了问题和答案,以明确它不是重复的,并为未来的访问者提供更一般的帮助。

4

2 回答 2

0

作为一个快速说明,您可能正在使用 GeoMesa Accumulo 快速入门。那里的几何字段名为“Where”。如果您将过滤器更新为

Filter cqlFilter = CQL.toFilter("BBOX(Where, 160.0, 1.0, 170.0, 3.0)");

它可能对你有用。

于 2016-09-14T18:37:56.220 回答
-1

如果您将无效/不正确的表名传递给toFilter. 在您花费大量时间阅读此问题的一般解决方案并在代码中搜索错误之前,请确保您拥有正确的表名。

于 2016-02-09T22:22:47.207 回答