Aerospike:Java Client是否支持二级索引上的多个过滤器?

时间:2014-12-05 10:07:47

标签: java aerospike

假设我在 bin1 bin2 上创建了二级索引。
我使用 Java 客户端进行查询:

Statement stmt = new Statement();
stmt.setNamespace("test");
stmt.setSetName("myDemoSet");
stmt.setBinNames("bin1", "bin2", "bin3", "bin4", "bin5");
stmt.setFilters(Filter.equal("bin1", Value.get("sherlock")));
RecordSet rs = null;
try {
    rs = client.query(null, stmt);
} catch (AerospikeException e) {
    e.printStackTrace();
}

有效。但是如果我添加另一个过滤器:

stmt.setFilters(Filter.equal("bin1", Value.get("sherlock")), Filter.equal("bin2", Value.get("stackoverflow")));

它似乎对输出没有任何影响 那么Aerospike Java Client目前支持多个过滤器吗? 如果是这样,怎么样?

1 个答案:

答案 0 :(得分:4)

旧答案: 目前,您只能对辅助索引执行单个谓词,等于或介于。

更新 Predicate filtering已在release 3.12中添加。您可以使用Java客户端的PredExp类(请参阅examples)。