3

了解しました。これを2日間機能させようとしています。つまり、Azureワーカーの役割で全文検索を実行したいと思います。Lucene.NETはこれに適していると思います。私はこの例を使用しました:Lucene.NET3.0.3.0でAzureDirectoryを使用します

私は以下のコードを使用しています:

CloudStorageAccount cloudAccount = CloudStorageAccount.FromConfigurationSetting("CloudStorageSetting");
var cacheDirectory = new RAMDirectory();
AzureDirectory azureDirectory = new AzureDirectory(cloudAccount, "MyCloudIndex", cacheDirectory);
Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
IndexWriter indexWriter = new IndexWriter(azureDirectory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED);

Lucene.Net3.0.3.0およびLucene.Net.Store.Azure1.0.5.1を使用する場合、AzureSDK1.8上。古いLucene.NET(2.9.xxx)も試しましたが、それも機能しませんでした。Windows.Azure.Storageを更新しました:それでも機能しません。

問題は次のとおりです。VisualStudioは、azureDirectoryに挿入されるがの代わりにIndexWriterタイプである必要があるというエラーを表示します。ただし、タイプをに変更すると、それはのサブタイプではないと表示されます。DirectoryAzureDirectoryDirectoryAzureDirectoryDirectory

インターネット上のすべての例が間違っていて、文字通りコピーして貼り付けても機能しないのはなぜですか?

更新:問題は修正されました。ブログに投稿しました:http://leoncullens.nl/post/2012/11/18/Full-Text-Search-on-Azure-with-LuceneNET.aspx

4

3 に答える 3

2

このプロジェクトを「フォーク」し、Luceneリファレンスを3.0.3に更新し、Azure Storageクライアントを2.0(v1.8 SDKに付属するバージョン)に更新し、コードをここに配置しました。

https://github.com/richorama/AzureDirectory

このバージョンのLucene.NETの使用方法を理解するために、「TestApp」のサンプルコードをコピーするのは比較的簡単です。

*免責事項、私はLuceneの専門家ではなく、これを適切にテストしていません。自己責任で使用してください。

于 2012-11-15T19:29:39.173 に答える
0

数か月前、このセットアップはLUCENEバージョン2.9および古いAzureSDKで機能しました。動作している場合と動作していない場合の主な違いは、最終的にRAMが不足したため、RAMDirectoryを使用しないことでした。RAMDirectoryを使用しなかった後、25GBのデータのインデックス作成に成功しました。

_azureDirectory  = new AzureDirectory
    ( storageAccount 
    , catalogName
    //, new RAMDirectory());

_version = Lucene.Net.Util.Version.LUCENE_29;

_analyzer = new StandardAnalyzer(_version);


IndexWriter
writer = new IndexWriter(
                  _azureDirectory, 
                  _analyzer,
                  newIndex, // new index or update
                  IndexWriter.MaxFieldLength.UNLIMITED);

writer.SetUseCompoundFile(false);
writer.SetRAMBufferSizeMB(800);
writer.SetMergeFactor(10);
于 2012-11-13T21:32:49.340 に答える
0

うまくいかない...なぜうまくいかないのか、そして何ができるのかについての私の答えは次のとおりです: AzureWebroleでLucene.Net検索を実装する方法

これが役立つかもしれない別の答えですが、私はアプローチに同意しません: https ://azuredirectory.codeplex.com/discussions/402913

編集:「作業」とは、実稼働環境での作業を意味することを明確にする必要があります。

于 2012-11-13T20:55:26.740 に答える