我将尝试简要描述我的问题和任务。我的任务是为不同类型的文件(仅限文本文件类型)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 并编写自己的搜索引擎?如您所见,我在索引、搜索方面没有问题,但在安全文件和文件安全级别方面没有问题。
感谢您为我花费的任何提示和时间。