在Accumulo中运行范围查询时的ArrayIndexOutOfBoundsException

时间:2016-01-05 20:56:38

标签: java accumulo geomesa

我正在使用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

的原因

修改

更新了问题和答案,明确表示不重复,并为将来的访问者提供更多一般性帮助。

2 个答案:

答案 0 :(得分:0)

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

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

它可能适合你。

答案 1 :(得分:-1)

如果您将无效/不正确的表格名称传递给toFilter,Geomesa / Accumulo会误导此红色鲱鱼错误。在您花费大量时间阅读general solutions to this problem之前并在代码中搜索错误,请确保您拥有正确的表名。