2013-06-26 83 views
0

我將嘗試簡要描述我的問題和任務。 我的任務是爲不同類型的文件(僅文本文件類型)pdf,word,odf,xml而不是html創建搜索引擎。 大約一年前,我對lucene幾乎沒有經驗,我用lucene和hibernate搜索編寫了簡單的全文搜索。這是一個簡單的項目。但是現在我的搜索任務非常艱鉅。 我們正在使用java 1.7和glassfish 3,並且我只能專注於服務器端方法而不是客戶端ui。 Ther是我的三個主要問題:lucene索引安全文件

1)所有文件都存儲在webdav服務器上,但關於文件名,id文件typ等信息存儲在數據庫(postgresql)中,所以當我創建索引時我需要使用這兩個信息。作爲查詢的結果,我只需要從數據庫返回文件ID。文件的摘要內容存儲在服務器中,但關於文件的信息存儲在數據庫中,因此我們必須檢索兩者。

2)次要問題是每個文件都有一定的保密級別。但主要問題是這個級別是動態計算的。在計算文件的安全級別時,我們考慮幾個屬性。靜態屬性是文件位置,文件所在的文件夾,也是動態信息用戶配置文件用戶角色和部門。因此,當用戶「Maggie」被記錄時,她只能搜索文件「test.pdf」,「test2.doc」等,但如果用戶「Stev」已記錄,他將得到不同的配置文件,例如Maggie,因此他只能搜索文件中的某個階段「broken.pdf」,「mybook.odt」。 test2.doc等.....。我認爲,例如當用戶搜索階段「lucene + solr」時,我們搜索所有索引文檔以及之後的過濾結果。但我認爲這個解決方案效率不高。如果結果計數100個文件,那麼接下來我們會逐步過濾每個文件?但我沒有看到任何其他解決方案。也許你可以幫我和lucene或solr獲得幫助。

3)最後一個問題是某些文件被加密。所以在加密之前文件只能索引一次!但我認爲,如果我們將安全文件編入索引,那麼我們就會遇到安全問題。因爲該文件中的所有單詞都被標記。 我沒有任何想法haw來保護lucene文檔和索引數據存儲?它可能...

另外我有問題,我需要使用Solr爲我的serarch引擎或只使用lucene和編寫自己的搜索引擎?所以,你可以看到我沒有索引,serching問題,但與安全文件和文件安全級別。

感謝您爲我花費的任何提示和時間。

回答

1

對於來自DB檢查索引功能的文件和文件的元數據ExtractRequestHandler
您可以通過元數據屬性和文件進行索引作爲一個請求,它會被存儲爲Lucene索引單個文檔。

對於安全性,其中一個選項是存儲可訪問Solr索引內的文件/文件的用戶/角色。
因此,您始終可以使用用戶/角色過濾結果以僅檢索這些結果。
使您的Solr網址安全,以便用戶無法直接訪問文檔。
同時檢查SOLR-1872

對於加密,Solr的和底層的解析器提卡確實提供通過提供額外的參數處理爲Encrypted files

Apache Solr使用Apache Tika,它使用Bouncy Castle通用加密庫從加密的PDF文件中提取文本內容和元數據。有關Bouncy Castle的更多詳情,請參閱http://www.bouncycastle.org/

+0

所以我看到你建議使用solr ... –

+0

y ..這將使上述要求很容易實現。 – Jayendra

+1

你應該記住,加密的文檔是被標記的,而這個標記是不加密的。所以如果你的文件中有信用卡號碼或類似的東西,人們可以在你的索引中找到它們。有關如何加密索引的一些研究,但因爲我知道沒有正在運行的解決方案。我正在爲我工​​作的公司開發解決方案,但它也沒有正常運行。 另請參閱http://crypto.stackexchange.com/questions/2213/are-there-any-implementations-of-secure-indexes – itsme