AzureDirectoryをダウンロードし、最新のLucene.NETを使用するとコンパイルできません
のようなエラーがたくさん
'Lucene.Net.Store.Azure.AzureDirectory' does not implement inherited abstract member 'Lucene.Net.Store.Directory.Dispose(bool)'
Lucene 3で動作できる新しいAzureDirectoryはありますか?
AzureDirectoryをダウンロードし、最新のLucene.NETを使用するとコンパイルできません
のようなエラーがたくさん
'Lucene.Net.Store.Azure.AzureDirectory' does not implement inherited abstract member 'Lucene.Net.Store.Directory.Dispose(bool)'
Lucene 3で動作できる新しいAzureDirectoryはありますか?
Nuget から AzureDirectory 1.0.5.1 をダウンロードし、JustDecompile で逆コンパイルしました。AzureDirectory クラスは、ListAll() など、Lucene.net 3.0.3 (リリース バージョン) の Directory クラスからいくつかの抽象メンバーを実装しません。したがって、AzureDirectory 1.0.5.1 は Lucene.net 3.0.3 と互換性がありません。
作成者が AzureDirectory をアップグレードして、この新しいバージョンの Lucene.net をすぐにサポートすることを願っています。それまでの間、自分でコードを掘り下げることをお勧めします...これが私がやっていることです。私は Lucene の内部の仕組みに精通していないので、成功するかどうかはわかりませんが.
Lucene 3.0.3.0 と最新の Azure SDK を備えた AzureDirectory を入手しました。
でも質問があります。私は 4 つのユニークな Lucene インデックスを持っています。基本的に国ごとに異なる製品です。「lucenedb-us」、「lucenedb-au」、「lucenedb-eu」など
AzureDirectory キャッシュはどのように機能しますか?
これは:
azureDirectory = new AzureDirectory(cloudStorageAccount, "lucenedb-us", new RAMDirectory());
そしてそれ:
azureDirectory = new AzureDirectory(cloudStorageAccount, "lucenedb-au", new RAMDirectory());
正確な結果が得られるか、コードは常に「lucenedb-us」を使用しますか? 常に「lucenedb-us」を使用する場合、削除new RAMDirectory()
すると問題は解決しますか?
私は Lucene.Net.Store.Azure 1.0.5.1 を Lucene.Net 3.0.3 でテストしました。次の手順を使用したので、試してみることもできます。
VS Package Manager を使用して、こちらから Lucene.NET.Store.Azure (1.0.5.1) (Lunece.NET 2.9.4.1以降に依存) を含めました
2.1 PM> インストール パッケージ Lucene.Net.Store.Azure
その後、Lucene.net をここから 3.0.3 RC に更新し、Lucene.net 2.9.4.1 を削除して 3.0.3 ビットをインストールしました。
3.1 PM> Install-Package Lucene.Net -Pre
プロジェクトに最新のビットとすべての依存関係が設定されていることを確認し、worker ロールに次のテスト コードを追加しました。
Lucene.Net.Util.Version version = Lucene.Net.Util.Version.LUCENE_30;
Microsoft.WindowsAzure.CloudStorageAccount cloudAccount = Microsoft.WindowsAzure.CloudStorageAccount.FromConfigurationSetting("CloudStorageSetting");
var cacheDirectory = new RAMDirectory();
AzureDirectory azureDirectory = new AzureDirectory(cloudAccount, "MyCloudIndex",cacheDirectory);
IndexWriter indexWriter = null;
Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
indexWriter = new IndexWriter(azureDirectory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED);
Document doc = new Document();
indexWriter.AddDocument(doc);
indexWriter.Dispose();
azureDirectory.Dispose();
コンパイルエラーはなく、ロールは正常に機能したため、同じことを試して確認できます。
この GitHub リポジトリを使用できます: https://github.com/richorama/AzureDirectory
自分でビルドする必要がありますが、Lucene 3.0.3 と Azure Tools 2 で期待どおりに動作します。