我可能正在構建一個Java servlet應用程序,它需要集成一個非常簡單的Lucene索引。該索引只能在單個字段上搜索,然後我想將結果發回,可能是XML,也許是JSON,但在這一點上並不重要。主要的是索引本身不是問題。Lucene和servlet集成
我的問題是如何將這兩者結合起來。我的傾向是從servlet應用程序的體裁上訪問索引,因此我會運行它並將其存儲在ServletContextListener中。然後,我可以構建一個相當簡單的控制檯來打開和關閉搜索服務。我還可以有一個應用程序來處理請求,並定期重建索引,然後交換新的索引以取代舊索引。出現的一個潛在問題是,如果/當索引被換出時,如何讓servlet行爲並等待一點。它應該不到一秒鐘,我可以在凌晨2點這樣做,但我仍然希望它儘可能地防彈。如果一個servlet向一個服務發出請求並且需要等待,那麼涉及到什麼樣的超時?我在哪裏/如何控制這個?
其他可能性是將索引作爲獨立的Java應用程序運行,或者在單獨的servlet應用程序中運行索引,並讓第一個應用程序通過servlet對其進行http調用。在最後一種方法中,我沒有看到很多好處,它只是增加了更多的代碼,而這些代碼並沒有真正起到任何作用。搜索請求無法直接從HTTP訪問。
你的想法是什麼?我很欣賞沿着這條線路經歷過的任何人的意見。
你爲什麼要定期重建索引?爲什麼不按照需要添加文檔? –
我需要每週清潔數據集。如果記錄不在新的供稿中,則不應該在索引中。只是一個業務需求。 – dnuttle
所以,你基本上正在努力解決切換應用程序以在不同的索引(切換文件名)中進行查找的時間,一週一次? –