次の方法で、spatialindex ライブラリを使用してメイン メモリの R* インデックスを作成しました (DBStream は、bulkLoading のインターフェイスを実装しています)。
// creating a main memory RTree
memStorage = StorageManager::createNewMemoryStorageManager();
size_t capacity = 1024;
bool bWriteThrough = false;
fileInMem = StorageManager
::createNewRandomEvictionsBuffer(*memStorage, capacity, bWriteThrough);
DBStream dstream(streets);
tree = RTree::createAndBulkLoadNewRTree(SpatialIndex::RTree::BLM_STR, dstream,
*fileInMem,
fillFactor, indexCapacity,
leafCapacity, dimension, rv, indexIdentifier);
私のデータは読み取り専用です。つまり、ツリーを 1 回だけ作成して保存し、プログラムを使用するたびに永続ストレージから再ロードしたいと考えています。明らかに、memStorage を自分で保存してロードすることはできますが、そこから RTree を再作成するにはどうすればよいでしょうか?