2012-07-18 2 views
1

Google 검색 서버의 가동 중지 시간을 줄이기 위해 애플리케이션을보다 탄력적으로 만들려고합니다. 이를 위해 자동 인덱싱 및 제거를 비활성화하고 백그라운드 프로세스에서 수동으로 수행하려고합니다.Sunspot_rails가 존중하지 않습니다. auto_index 및 : auto_remove

내가 저장하거나 기록을 파괴하려고 할 때마다

searchable :auto_index => false, :auto_remove => false do 
... 
end 

을 시도하고있다 그러나 여전히 연결 오류가 발생하고있다.

backtrace는 solr 검색 가능 파일에서 오류가 발생했음을 보여 주므로 문제를 일으키는 sunspot_rails가 맞습니다. 다음은 역 추적에서 파손 된 부분입니다.

... 
rsolr (1.0.8) lib/rsolr/client.rb:67:in `update' 
rsolr (1.0.8) lib/rsolr/client.rb:121:in `delete_by_id' 
sunspot (1.3.3) lib/sunspot/indexer.rb:36:in `remove' 
sunspot (1.3.3) lib/sunspot/session.rb:137:in `block in remove' 
sunspot (1.3.3) lib/sunspot/session.rb:136:in `each' 
sunspot (1.3.3) lib/sunspot/session.rb:136:in `remove' 
sunspot (1.3.3) lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove' 
sunspot (1.3.3) lib/sunspot.rb:410:in `remove' 
sunspot_rails (1.3.3) lib/sunspot/rails/searchable.rb:390:in `solr_remove_from_index' 
sunspot_rails (1.3.3) lib/sunspot/rails/searchable.rb:93:in `block in searchable' 
... 

이러한 후크를 비활성화하는 옵션이 작동하지 않는 이유는 무엇입니까? 어떤 생각을 어떻게 실제로 비활성화 할 수 있습니까?

자동 콜백을 사용할 수있는 동안, 나는 아직도 다른 단계가 더러운 만드는 것을 밝혀 :

감사

답변

1

내 자신의 질문에 대한 답을 찾을. sunspot_rails에는 요청이 끝날 때 실행되는 정리 단계가 있으며 모든 더티 레코드를 solr 서버에 커밋하려고 시도합니다. 사용 중지하려면 sunspot.ymlauto_commit_after_request: false을 추가하십시오.

+0

유용한 정보 주셔서 감사합니다. @ 포레스트 – Cec

관련 문제