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())));
}
希望它能幫助你。