2012-04-13 58 views
0

我跑速度測試,約3000條記錄的傳統Post.all(...)和太陽黑子的Post.search(...)對錶之間的結果比較沒有速度增加。在這兩種情況下,加載需要12秒。一切似乎都奏效,速度有所提高。沒有錯誤,但用太陽黑子寶石

ENV:紅寶石1.8.7,Rails的2.3.14

Sunspot.yml:

production: 
    solr: 
    hostname: localhost 
    port: 8984 
    log_level: FINEST 
    auto_commit_after_request: false 

development: 
    solr: 
    hostname: localhost 
    port: 8982 
    log_level: INFO 
    auto_commit_after_request: false 
test: 
    solr: 
    hostname: localhost 
    port: 8981 
    log_level: WARNING 
    auto_commit_after_request: false 

的Gemfile:

gem "rsolr", "0.12.1" 
gem "sunspot", "1.2.1" 
gem "sunspot_solr", "1.3.1" 
gem "sunspot_rails", "1.2.1" 

控制器:

@users = User.search do 
    with :client_id, current_user.client.id 
    paginate :page => params[:page] if params[:page] 
    paginate :page => 1 if not params[:page] 
    paginate :per_page => PAGINATION_COUNT 
end 

查看:

concat will_paginate(@users) 

我懷疑我已經忽略了一些很基本的?

+0

如何索引? – DGM 2012-04-13 22:25:21

+0

Solr服務器已啓動,重新啓動並重新建立索引。軌道根目錄的solr文件夾中的文件大小表示我假設索引是成功的。雖然速度一樣。 – iamtoc 2012-04-13 22:29:57

回答

0

爲什麼要加載所有3000個帖子?這個基準沒有意義。如果您必須加載整個表格,則使用Solr時不會產生任何影響。

+0

我絕對不想加載整個表格。我認爲那是什麼分頁。我能做些什麼才能每PAGINATION_COUNT每頁加載30條記錄。從它看起來,它下載表中的所有內容。當will_paginate似乎沒有解決這個問題時,我轉向太陽黑子。就像我說的,我沒有得到非常基本的東西。 – iamtoc 2012-04-13 22:31:22

+0

你說在第一種情況下需要花費12秒來加載一個包含30條記錄的頁面:你是否使用will_paginate來與activerecord進行分頁?您也可以將其與Solr結合使用。 – aledalgrande 2012-04-13 22:36:36

+0

與Solr分頁相同的結果。 – iamtoc 2012-04-13 23:22:02

0

空白在YAML顯著。您確定auto_commit_after_request系列屬於solr?我見過a fewexamples它落在開發/生產/測試元素:

development: 
    solr: 
    hostname: localhost 
    port: 8983 
    log_level: INFO 
    auto_commit_after_request: false