我有一个包含文档列表的应用程序。这些文件是使用Lucene索引的 。 我可以搜索文档的关键字。我循环了TopDocs并获得了与我的 关系数据库中的ID列相关的每个Lucene doc的 ID字段。从所有这些ID中,我创建一个列表。 建筑ID的名单后,我会把它执行 数据库查询下面的SELECT语句(JPA):将Lucene搜索结果与关系数据库进行映射
SELECT d From Document WHERE id IN (##list of ID's retrieved from Lucene##)
的文档此列表发送到视图(GUI)。
但是,一些文件是私人的,不应该在列表中。因此, 我们在SELECT查询一些额外的语句,做一些安全 检查:
SELECT d From Document WHERE id IN (##list of ID's retrieved from Lucene##)
AND rule1 = foo
AND rule2 = bar
但现在我想知道:我使用Lucene的速度快速搜索 文件,但我仍然必须做SELECT查询。所以我失去了 表现在这一个:-(... 是否有一些组件可以为你做这个映射?或者 有关于这个问题的任何最佳实践?大项目如何将Lucene 结果映射到关系型数据库?因为视图应该渲染 结果?
非常感谢!
约亨
你担心什么样的表现打击? Lucene是用于索引的,理想情况下,你将拥有一个数据库或文件系统。如果Lucene下的关系数据库是您系统其余部分的合适选择,那么您描述的是正确的做事方式。 – dfb 2012-07-05 20:07:11
嗯,我想我可以使用Lucene,所以我不需要一个MySQL查询。只需从Lucene索引中获取所有Document属性/细节。但由于额外的检查,我们需要执行额外的MySQL查询。 – 2012-07-10 10:21:23