Lucene.Net用のAzureLibraryを使用して、データのインデックス作成と検索を行っています。私のwebroleインデックスデータは、以下のコードを使用してインデックスを作成します。
AzureDirectory azureDirectory = new AzureDirectory(CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("AzureStorageConnectionString")), pIndexDir);
IndexWriter indexWriter = indexWriter = new IndexWriter(azureDirectory, null, findexExists, IndexWriter.MaxFieldLength.UNLIMITED);
indexWriter.SetRAMBufferSizeMB(10.0);
indexWriter.SetUseCompoundFile(false);
indexWriter.SetMaxMergeDocs(10000);
indexWriter.SetMergeFactor(100);
そして、私の同じwebroleがデータを検索します。以下のコードは、インデックスの検索に使用されます。
AzureDirectory azureDirectory = new AzureDirectory(CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("AzureStorageConnectionString")), pIndexToSearch);
IndexSearcher searcher = new IndexSearcher(azureDirectory,true);
デフォルトでは、AzureDirectoryはローカルの一時フォルダーにキャッシュを格納するため、上記のコードはローカルのtenpフォルダーを使用してキャッシュします。
サービス定義ファイルで、Webロールのローカルストレージリソースを構成していません。
SmallVMロールサイズを使用しています。
私の問題は、単語を検索しているときに、検索結果が本来あるべき速度で取得されないことです。少し遅いです。
構成が不足しているかどうかはわかりません...または、高速になるように、検索用のBLOBストレージを指すRAMDirectoryを使用してAzureDirectoryを作成する必要があります。