LuceneNet如何运作&以下方案的实施可行性?

时间:2012-11-20 15:22:34

标签: azure lucene lucene.net azure-storage

我是LuceneNet的新手......我应该说很新。在我的脑海里,我有一些疑问,在阅读了大量关于它的数据后我无法清除。好吧,我在一个场景中,我将拥有大量的PDF /文档/ Excels /图像以及将有相关数据的网页。系统中有各种类型的用户,其中一些用户可以访问特定的PDF /文档,有些则不能访问。我将使用Azure来部署我的应用程序。因此,如果用户搜索某些内容,我只想向他显示他有权查看的结果。如果我使用LuceneNet,是否可以这样做?此外,我希望跟踪特定文档/ URL等的命中,以便它可以在大多数搜索等中显示。那么是否可以使用LuceneNet实现这一点? 如果我想在PDF / Doc / Docx / XSL / XSLX / PPT / PPTX等中索引文件和数据,我需要使用哪些内容。如何通过LuceneNet存储数据(索引数据)?我的意思是我应该将它存储在BLOB存储中吗?这是可取的吗?我希望我的应用程序应该可扩展。那么LuceneNet会支持我吗?我可以拥有多个工作者角色的实例吗?如何重新编制索引?重新索引是否重新生成所有索引,如果是这样,在重新索引期间我将能够搜索?很抱歉这么多问题,所有这些问题也可能没有按顺序排列。但是当我回忆起时,我问道。

1 个答案:

答案 0 :(得分:4)

首先我会推荐名为“Lucene In Action”的书,它适用于Java,但它是在Lucene 3.0.3版本上,恰好是当前的Lucene.NET版本...... API是相同的,所以它是一个伟大的起始资源。

回答...... 1)是否可以仅在Lucene.NET中显示授权记录?是的..你可以通过几种方式做到这一点。如果需要,您可以分离索引,也可以添加其他字段,并始终在搜索查询中包含这些字段。

2)是的,你也可以跟踪Lucene中的命中(你可以记录你的命中并根据需要插入它们)

3)如果您想索引PDF,Docs,Docx ...您需要提取文本。 Lucene不会为你做那件事。因此,您可以使用Office Automation(适用于Word Docs ..免费API)。 API是基本的,但是如果你想要一些更成熟/更省钱的东西,可以选择AsPose(.NET库来完成你需要的东西)

4)有一个库可以为您抽象AzureDirectory并使用blob存储。我不建议它,因为它不好:Lucene 3.0.3,有稳定性问题,它使用旧的Storage Client API(2.0之前)。我会使用Azure IaaS虚拟机并将Lucene索引存储在磁盘上。如有必要,您始终可以扩展和添加更多内容并对磁盘进行条带化。

5)你应该只有一个IndexWriter,但你可以拥有多个索引搜索者。

6)从Lucene 2.9.x开始,你有一个叫做“实时”搜索的东西,在那里你可以进行索引更新,执行查询的搜索者可以在没有索引的情况下“接近”实时获取新数据完全投入/冲洗。