0

我将尝试简要描述我的问题和任务。我的任务是为不同类型的文件(仅限文本文件类型)pdf、word、odf、xml 而不是 html 创建搜索引擎。大约一年前,我几乎没有使用 lucene 的经验,我使用 lucene 和休眠搜索编写了简单的全文搜索。那是一个简单的项目。但现在我的搜索任务非常艰巨。我们正在使用 java 1.7 和 glassfish 3,我必须只关注服务器端方法而不是客户端 ui。这是我的三个主要问题:

1)所有文件都存储在 webdav 服务器上,但有关文件名、id 文件类型等的信息存储在数据库(postgresql)中,所以当我创建索引时,我需要使用这两个信息。作为查询的结果,我只需要从数据库返回文件 ID。文件的摘要内容存储在服务器中,但有关文件的信息存储在数据库中,因此我们必须同时检索两者。

2)次要问题是每个文件都有一定的保密级别。但主要问题是这个级别是动态计算的。在计算文件的安全级别时,我们会考虑几个属性。静态属性是文件位置,文件所在的文件夹,还有动态信息用户配置文件用户角色和部门。因此,当用户“Maggie”被登录时,她只能搜索文件“test.pdf”、“test2.doc”等,但如果用户“Stev”被登录,他有不同的配置文件,比如 Maggie,所以他只能搜索文件中的某个阶段“broken.pdf”、“mybook.odt”。test2.doc等...... 我认为,例如,当用户搜索阶段“lucene +solr”我们在所有索引文档中搜索并在过滤结果之后进行搜索。但我认为该解决方案效率不高。如果结果计数 100 个文件,那么接下来我们如何逐步过滤每个文件?但我没有看到任何其他解决方案。也许你可以帮助我,而 lucene 或 solr 有帮助的机制。

3)最后一个问题是一些文件是加密的。所以文件必须在加密前只被索引一次!但我认为,如果我们索引安全文件,我们就会遇到安全问题。因为该文件中的所有单词都已标记化。我不知道如何保护 lucene 文档和索引数据存储?这是可能的 ...

另外我有一个问题,我需要将 Solr 用于我的搜索引擎还是只使用 lucene 并编写自己的搜索引擎?如您所见,我在索引、搜索方面没有问题,但在安全文件和文件安全级别方面没有问题。

感谢您为我花费的任何提示和时间。

4

1 回答 1

1

对于从数据库检查文件的文件和元数据索引提取请求处理程序
您可以将元数据属性和要索引的文件作为单个请求传递,它将作为单个文档存储在 lucene 索引中。

对于安全性,选项之一是将有权访问 Solr 索引中的文件/文档的用户/角色存储。
因此,您始终可以使用用户/角色过滤结果以仅检索那些结果。
确保您的 Solr url 安全,以便用户无法直接访问文档。
还要检查SOLR-1872

对于加密,Solr 和底层 Parser Tika 确实通过提供附加参数来处理加密文件。

Apache Solr 使用 Apache Tika,它使用 Bouncy Castle 通用加密库从加密的 PDF 文件中提取文本内容和元数据。有关充气城堡的更多详细信息,请参见http://www.bouncycastle.org/

于 2013-06-27T03:58:16.477 回答