C# 将AzureDirectory与Lucene.NET 3.0.3.0一起使用
我下载AzureDirectory和最新的Lucene.NET 根本无法编译 很多错误,比如C# 将AzureDirectory与Lucene.NET 3.0.3.0一起使用,c#,azure,lucene.net,azure-storage-blobs,C#,Azure,Lucene.net,Azure Storage Blobs,我下载AzureDirectory和最新的Lucene.NET 根本无法编译 很多错误,比如 'Lucene.Net.Store.Azure.AzureDirectory'未实现继承的抽象成员'Lucene.Net.Store.Directory.Dispose(bool) 是否有任何新的AzureDirectory可以与Lucene 3一起使用?我已经用Lucene.Net.Store.Azure 1.0.5.1和Lucene.Net 3.0.3测试了Lucene.Net.Store.Azur
'Lucene.Net.Store.Azure.AzureDirectory'未实现继承的抽象成员'Lucene.Net.Store.Directory.Dispose(bool)
是否有任何新的AzureDirectory可以与Lucene 3一起使用?我已经用Lucene.Net.Store.Azure 1.0.5.1和Lucene.Net 3.0.3测试了Lucene.Net.Store.Azure 1.0.5.1,这对我来说很有效。我使用了以下步骤,因此您也可以尝试:
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();
没有编译错误,角色工作正常,因此您可以尝试相同的方法并查看 我已经用Lucene.Net 3.0.3测试了Lucene.Net.Store.Azure 1.0.5.1,这对我来说很有效。我使用了以下步骤,因此您也可以尝试:
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();
没有编译错误,角色工作正常,因此您可以尝试相同的方法并查看 我刚刚从Nuget下载了AzureDirectory 1.0.5.1,并用JustDecompile进行了反编译。AzureDirectory类没有实现Lucene.net 3.0.3(发行版)中目录类的几个抽象成员,例如ListAll()。因此,AzureDirectory 1.0.5.1不能与Lucene.net 3.0.3兼容
希望作者能尽快升级AzureDirectory以支持这个新版本的Lucene.net。同时我建议你自己深入研究代码。。。这就是我正在做的。虽然我不确定是否会成功,因为我不熟悉Lucene的内部工作。我刚刚从Nuget下载了AzureDirectory 1.0.5.1,并使用JustDecompile对其进行了反编译。AzureDirectory类没有实现Lucene.net 3.0.3(发行版)中目录类的几个抽象成员,例如ListAll()。因此,AzureDirectory 1.0.5.1不能与Lucene.net 3.0.3兼容
希望作者能尽快升级AzureDirectory以支持这个新版本的Lucene.net。同时我建议你自己深入研究代码。。。这就是我正在做的。虽然我不确定我是否会成功,因为我不熟悉Lucene的内部工作。您可以使用这个GitHub存储库:
您必须自己构建它,但它与Lucene 3.0.3和Azure Tools 2的预期效果一样。您可以使用此GitHub存储库:
您必须自己构建它,但它与Lucene 3.0.3和Azure Tools 2的预期效果一样。感谢您的帮助,各位,我已经获得了带有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”,删除
新的RAMDirectory()
会解决问题吗?谢谢大家的帮助,我已经获得了带有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()
会解决问题吗?好的,你下载DLL,我下载源代码,也许这就是区别,你会试试你的方法你的例子不起作用。我安装了完全相同的软件包,但我无法将azureDirectory插入IndexWriter(),因为它需要目录的子类(azureDirectory不是目录的子类型)。那些对答案投反对票的人请理解,当我回答这个问题时,Lucene 3.0.3是在RC中的,它确实按照上面所写的那样工作。Lucene 3.0.3发布后发生了一些变化,可能导致上述答案不适用,但曾经适用。您好,我知道这个答案已经发布了一段时间,但我可以知道我应该将上述代码放在哪里吗?我已经创建了一个简单的测试应用程序,并按照步骤进行了操作,除了第4步OK,你下载DLL,我下载源代码,也许这就是区别,我会尝试你的方法。你的示例不起作用。我安装了完全相同的软件包,但我无法将azureDirectory插入IndexWriter(),因为它需要目录的子类(azureDirectory不是目录的子类型)。那些对答案投反对票的人请理解,当我回答这个问题时,Lucene 3.0.3是在RC中的,它确实按照上面所写的那样工作。Lucene 3.0.3发布后发生了一些变化,可能导致上述答案不适用,但它曾经适用。嗨,我知道这个answ