我下载AzureDirectory和最新的Lucene.NET 根本无法编译
很多错误,比如
'Lucene.Net.Store.Azure.AzureDirectory' does not implement inherited abstract member 'Lucene.Net.Store.Directory.Dispose(bool)'
是否有可以使用Lucene 3的新AzureDirectory?
答案 0 :(得分:2)
我刚刚从Nuget下载了AzureDirectory 1.0.5.1,并使用JustDecompile对其进行了反编译。 AzureDirectory类不实现Lucene.net 3.0.3(发行版)中的Directory类中的几个抽象成员,例如ListAll()。因此,AzureDirectory 1.0.5.1无法与Lucene.net 3.0.3兼容
希望作者能够尽快升级AzureDirectory以支持这个新版本的Lucene.net。与此同时,我建议自己深入研究代码......这就是我正在做的事情。虽然不确定我是否会成功,因为我不会对Lucene的内部运作感到失望。
答案 1 :(得分:2)
This链接有最新的东西,适用于lucene 3.0.3和最新的10月SDK
答案 2 :(得分:1)
我用Lucene.Net 3.0.3测试了Lucene.Net.Store.Azure 1.0.5.1,它对我有用。我使用了以下步骤,您也可以尝试:
使用VS Package Manager包含来自here的Lucene.NET.Store.Azure(1.0.5.1)(依赖于Lunece.NET 2.9.4.1及更高版本)
2.1 PM>安装包Lucene.Net.Store.Azure
之后我将Lucene.net从here更新为3.0.3 RC,删除了Lucene.net 2.9.4.1并安装了3.0.3位
3.1 PM>安装包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();
没有编译错误,角色确实工作正常,所以你可以试试看看。
答案 3 :(得分:1)
感谢大家的帮助,我的AzureDirectory包含Lucene 3.0.3.0和最新的Azure SDK。
我有一个问题。我有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()
来解决问题?
答案 4 :(得分:0)
您可以使用此GitHub存储库:https://github.com/richorama/AzureDirectory
您必须自己构建它,但它与Lucene 3.0.3和Azure Tools 2一样正常工作。