2012-02-16 57 views
4

我在PHP/MySQL中有一個heldesk應用程序。我想實現實時全文搜索,並且我有入圍的Solr。 MySQL數據庫將存儲搜索所需的所有數據和數據,並將導入用於構建Solr索引。所有搜索請求將由Solr處理。關於Solr的一些問題。交易和實時搜索

我要的是

  • 實時搜索。當有人更新一張票時,它應該可用於搜索。
  • 如果多人同時更新票,Solr的應該能夠處理提交

按我的Solr的理解,這是我怎麼想的,系統將正常工作。用戶更新票證 - >相應的數據庫記錄修改 - >向索引服務器發送請求以修改索引中的相應文檔。

我讀過一本關於Solr的書,下面的問題讓我感到困擾。

  1. 書中提到,

    「提交在Solr的慢。根據索引大小,Solr的 自動升溫的配置,和Solr的緩存狀態之前 提交,提交可以採取一個不平凡的時間。通常情況下,它 需要幾秒鐘,但它可以在 極端情況下」

    如果分鐘的一些數這是真的,那麼我將如何知道數據何時可用於搜索以及如何實現實時搜索?即使花了幾秒鐘,也不可能是實時的。此外,我不想要的車票更新操作慢下來(通過添加更新的Solr指數的額外步驟)

  2. 它也提到,

    「沒有事務隔離。這意味着,如果有多個 Solr客戶端提交修改並將它們提交到 重疊時間,那麼在客戶端告知Solr提交之前,可能會提交一個客戶端的一組 更改的部分更改,此 也適用於回滾。如果這對於您的 體系結構是個問題,那麼請考慮使用一個客戶端進程responsi可更新Solr「 」。

李四這意味着,由於缺乏交易的承諾,Solr的可以胡來了,如果多人同時更新的票嗎?

現在我面前的問題是:我可以使用Solr來實現這兩個嗎?如果是,如何?

編輯1: 是啊!我遇到了幾個類似的問題,但沒有一個有令人滿意的答案。所以再次張貼。對不起如果你發現它重複。

+0

相似(有些鏈接可能會有幫助)http://stackoverflow.com/questions/5909565/how-can-i-use-solr-to-do-real-time-搜索 – robasta 2012-02-16 10:55:49

回答

4

您請求的功能稱爲Near Realtime Search,也稱爲NRT。NRT方面的工作仍在進行中,但過去幾年來,Solr對此項支持進行了卓有成效的改進。請參閱以下鏈接以獲取有關NRT當前(版本1.4 - 3.5)和未來(版本4.0)支持的更多詳細信息。

NRT選項