我有一個包含文檔列表的應用程序。這些文件是使用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