2012-05-18 132 views
0

我正在開發一個應用程序,每天迎合約10萬次搜索。我們可以安全地假設每天數據庫中的更新/插入/刪除數量相同。當前的應用程序使用本機SQL,我們打算將其遷移到Hibernate並使用Hibernate Search。休眠搜索自動索引

由於數據庫記錄存在連續變化,我們需要啓用自動索引。管理層擔心自動索引可能導致的性能影響。

由於更改記錄中的更改一旦發生更改就必須可用於搜索,因此不可能有預定的批量索引。

我搜索了一些性能統計數據,但沒有找到。

任何已經從事Hibernate Search工作並面臨類似情況的人都可以分享他們的想法嗎?

感謝您的幫助。

Regards,

Shardul。

回答

0

它可能正常工作,但沒有基線很難猜測。我有更多的搜索/日常經驗,經過一些微調,效果很好,但不可能知道這是否適用於您的場景,而無需嘗試。 如果正常調整失敗並且NRT不能夠快速證明,您可以總是對索引進行分片,使用多主配置並插入分佈式二級緩存,如Infinispan:所有組合的體系結構都可以實現線性可伸縮性,只要您有時間來設置它和合理的硬件。

很難說您需要什麼樣的硬件,但可以肯定的是它比原生SQL解決方案更高效。我會建議做一個POC,看看你能在一個節點上走多遠;如果您擁有的查詢類型非常適合Lucene,那麼您可能不需要超過一臺服務器。請注意,Lucene在查詢中比在更新中快得多,因此,由於您估計您將擁有相同數量的寫入和搜索,所以問題不大可能在每秒搜索量中,但在寫入(更新)/秒和總數據(索引)大小。最新的Hibernate Search引入了一個NRT索引管理器,它很好地滿足了這種用例。