2011-01-28 34 views
0

我有3個Rails應用運行:紅寶石:降解太陽黑子搜索到SQL

  1. 地方發展(安裝有黑子)
  2. 在Heroku分期(運行 「生產」 Rails環境)
  3. 生產上Heroku(運行「生產」Rails環境)

在Heroku上使用Solr會花錢,我會將其添加到我的生產應用程序中。我不想將Solr添加到演示應用中,因爲性能並不重要。

我想知道是否有一個體面的方式來降低我的太陽黑子/ Solr調用SQL查詢。

太陽黑子在我的控制器的外觀要求如下:

@search = Search.find(params[:id]) 
@results = Listing.search do |query| 
    query.with(:city).any_of @search.cities if @search.cities 
    query.with(:county).any_of @search.counties if @search.counties 
    ... 
end 
+0

檢查Rails.env.production?區分使用Records.where(「blah like'that%'」)和Records.search {fulltext'that'} – nurettin 2012-09-15 06:29:19

回答

1

如果你不使用Solr的全文檢索,而你使用Rails 2,record_filter有一個非常類似的語法:https://github.com/aub/record_filter

也就是說,你最好的選擇可能是定義兩個適配器類,它們呈現相同的接口,但分別在引擎蓋下使用Solr和SQL。

+0

非常感謝這個答案!不幸的是,我正在使用Rails 3.對不起,我忘了提到這一點。 我想我現在的問題是區分是否在代碼執行時支持太陽黑子。有關於此的任何提示? (這裏真正的困難是因爲兩個Heroku應用都在運行生產環境) – Mike 2011-01-28 17:27:14

1

此外,如果您使用的是WebSolr插件,它們實際上爲您提供了兩個索引 - 如果您登錄到websolr控制檯,它將允許您在那裏創建第二個索引,並且您可以指向該索引中轉站點。

+0

我們<3個臨時環境。 – 2011-03-17 05:33:49