假设我在 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目前支持多个过滤器吗? 如果是这样,怎么样?
答案 0 :(得分:4)
旧答案: 目前,您只能对辅助索引执行单个谓词,等于或介于。
更新 Predicate filtering已在release 3.12中添加。您可以使用Java客户端的PredExp类(请参阅examples)。