Aerospike:Java 客户端是否支持二级索引的多重过滤器?

hol*_*840 5 java aerospike

假设我在bin1bin2上创建了二级索引。
我使用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();
}
Run Code Online (Sandbox Code Playgroud)

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

stmt.setFilters(Filter.equal("bin1", Value.get("sherlock")), Filter.equal("bin2", Value.get("stackoverflow")));
Run Code Online (Sandbox Code Playgroud)

它似乎对输出没有任何影响。
那么 Aerospike Java 客户端当前是否支持多个过滤器?
如果是这样,如何?

Ron*_*zer 6

旧答案: 目前您只能对二级索引执行单个谓词,等于或介于两者之间。

更新: 谓词过滤已在3.12 版中添加。您可以使用Java 客户端的 PredExp类(参见示例)。