2012-04-13 2 views
0

약 3000 개의 레코드가있는 테이블에 대해 Post.all(...)과 Sunspot의 Post.search(...) 사이의 결과를 비교하는 속도 테스트를 실행했습니다. 두 경우 모두로드하는 데 12 초가 걸립니다. 모든 것이 작동하는 것으로 보이고 속도는 향상됩니다.흑점 젬을 사용하면 오류는 발생하지 않지만 속도는 증가하지 않습니다.

봉투 :

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 : 루비 1.8.7은 2.3.14

Sunspot.yml 레일

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

+0

Solr 서버가 시작, 다시 시작 및 다시 색인화되었습니다. 레일 루트의 solr 폴더에있는 파일 크기는 인덱싱이 성공적이라고 가정합니다. 그래도 같은 속도. – iamtoc

답변

0

왜 3000 개의 게시물을 모두로드 하시겠습니까? 그 벤치 마크는 의미가 없습니다. 전체 테이블을로드해야하는 경우 Solr을 사용하는 경우 아무런 차이가 없습니다.

+0

전 테이블 전체를로드하고 싶지 않습니다. 나는 페이지 매김이 전부인 것을 생각했다. PAGINATION_COUNT 당 페이지 당 30 개의 레코드 만로드하려면 어떻게해야합니까? 보이는대로 보면 테이블에있는 모든 것을 다운로드합니다. will_paginate가 이것을 해결하지 못했을 때, 나는 흑점으로 바뀌었다. 내가 말했듯이, 나는 아주 근본적인 것을 얻지 못하고있다. – iamtoc

+0

첫 번째 경우 30 개의 레코드가있는 페이지를로드하는 데 12 초가 걸립니다. will_paginate를 사용하여 activerecord로 페이지 매기기를 사용하고 있습니까? Solr과 함께 사용할 수도 있습니다. – aledalgrande

+0

Solr 페이지 매김과 같은 결과. – iamtoc

0

공백은 YAML에서 중요합니다. auto_commit_after_request 라인은 solr에 속합니다. 이 개발/생산/테스트 요소에 해당 어디 a fewexamples을 본 적이 :

development: 
    solr: 
    hostname: localhost 
    port: 8983 
    log_level: INFO 
    auto_commit_after_request: false 
관련 문제