2014-02-06 56 views
2

我會用一個例子來解釋我的問題:Solr:通過任何方式「實時」將外部數據添加到結果中?

我即將創建一個酒店的預訂網站。酒店擁有1000間客房。可用性可能會隨着時間的推移而改變,同樣的價格也取決於可用性。

現在,我正在考慮使用Solr作爲網站的搜索引擎,因爲它提供了很多功能「開箱即用」。對於初學者來說,它提供了我需要的過濾和刻面功能。

不過,最主要的問題是如何處理可用性和價格。我總是可以每天一次爲每個房間提供一個價格,在任何給定的日期Y前幾天開始提前一天。這意味着,如果我希望客戶能夠選擇在今天和今天365天之後的任何一天開始預訂1到14天之間的任何房間,那麼這將導致大量計算。這似乎不是一種有效的方法。

有沒有一種方法可以將自定義「價格計算器」插入Solr?我認爲Solr可以容納「靜態」房間數據,例如牀位數量和房間大小,然後在Solr中插入一個「價格計算器」,透明地計算價格並簡單地將計算出的價格與搜索結果一起返回響應。使用這種方法,我也可以實現對價格的篩選和分割。

這是否與濫用Solr意味着處理什麼? Solr會以任何方式做到這一點?

回答

1

Solr是以索引爲中心的。如果價格和可用性沒有編入索引,但是可以實時計算,那麼搜索和篩選它們的計算成本很高(=>較慢)。由於Solr將被迫遍歷整個結果或作爲最壞情況遍歷整個索引而不是進行索引查找。

因爲具有指數做事是系統的核心,這就是爲什麼我說yes你的問題

這是接壤濫用什麼Solr的意思來處理?

但有辦法和方法來做到這一點,我不會推薦使用。我寧願回答你的後面的問題

Solr會以任何方式能夠嗎?

我想看看Solr的Near Real Time Feature這個。

近實時(NRT)搜索意味着文檔在被索引後幾乎立即可用於搜索:文檔的添加和更新在「近」實時顯示。在進行提交時,Solr 4不再阻止更新。在打開新的索引搜索和返回之前,它也不等待後臺合併完成。

使用NRT,您可以將提交命令修改爲軟提交,這可以避免標準提交的部分代價高昂。您仍然希望執行標準提交以確保文檔處於穩定存儲狀態,但軟提交允許您在此期間看到索引的非常接近實時的視圖。但是,要特別注意緩存和自動設置設置,因爲它們可能會對NRT性能產生重大影響。

通過這種方式,您可以隨時隨地進行價格計算,但可以快速顯示價格和可用性。你將不得不稍微調整一下以獲得最佳的索引設置,但是當你仍然在使用Solr時,它會付出代價。

這說明有的在做題How to update bigger solr index efficientlyReal Time Searching of a Lucene Index that is Updated Frequently - Is this practical?

當然更多信息的發放可以在網上

上找到
相關問題