0
我在岩石数据库中有巨大的数据集(键值),我必须根据键的前缀搜索键。我不想扫描整个数据集以基于密钥前缀过滤掉密钥。有没有办法做到这一点?Rocks DB的Java API支持前缀扫描吗?
我在岩石数据库中有巨大的数据集(键值),我必须根据键的前缀搜索键。我不想扫描整个数据集以基于密钥前缀过滤掉密钥。有没有办法做到这一点?Rocks DB的Java API支持前缀扫描吗?
你可以使用这样的东西。 使用RocksIterator有一个API暴露在哪里你可以寻找到的关键子字符串,如果你的关键字开头的前缀,然后考虑该关键。
请找到示例代码。
List<String> result = new ArrayList<String>();
RocksIterator iterator = db.newIterator();
for (iterator.seek(prefix.getBytes()); iterator.isValid(); iterator
.next()) {
String key = new String(iterator.key());
if (!key.startsWith(prefix))
break;
result.add(String.format("%s", new String(iterator.key())));
}
希望它能帮助你。