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

问题描述 投票:4回答:1

假设我在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目前支持多个过滤器吗? 如果是这样,怎么样?

java aerospike
1个回答
4
投票

旧答案:目前,您只能在辅助索引上执行单个谓词,可以是等于或等于。

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

© www.soinside.com 2019 - 2024. All rights reserved.