2012-02-07 1 views
2

mongoid와 함께 흑점을 사용하려하지만 흑점이 Solr에 연결되어 있지 않습니다. Solr에 연결할 때 Rails가보고 한 오류가 발생했습니다. SOLR는 설정에 정의 된대로 개발 포트 (8982)에서 실행되고 있는지sunspot_rails가 해당 설정의 sunspot.yml을 읽지 않습니다

Errno::ECONNREFUSED (Connection refused - connect(2)) 

나는 SOLR을 실행하는 데 bundle exec rake sunspot:solr:start를 사용하고 난 확인했습니다/sunspot.yml

내가 레일 콘솔에서 Sunspot.config을 실행

, I 그 참조 :
@properties={:url=>"http://127.0.0.1:8983/solr"} 

가 그럼 난 8,985분의 8,984으로 개발/생산 포트를 변경 SOLR는 새로운 디바이스 포트 (8984)하지만 Sunspot.config 여전히 http://127.0.0.1:8983/solr (8984 또는 8985도 반환 레일 콘솔에서 시작되는 의미하지 않는다. sunspot.yml을 읽음)

Sunspot in Rails에 대한 초기 단계가 빠져 있습니까?

나는 다음과 같은 버전을 사용하고 있습니다 :

  • 루비 1.9.3
  • 레일 (3.2.1)
  • 태양 흑점 (1.3.0)
  • sunspot_rails (1.3.0)
  • sunspot_mongoid (0.4.1)

답변

0

콘솔을 종료했다가 다시 시작하고 선택 했습니까?

0

콘솔에서 sunspot_index_queue 양식을 사용하려고하면 비슷한 문제가 발생하며 sunspot이 sunspot_rails (sunspot.yml에서 가져옴)에서 필요한 구성을 얻지 못하는 것으로 나타났습니다. environments.rb의 약간의 수정 파일이 트릭을해야합니다.

<code> 
SunspotConfig = Sunspot::Rails::Configuration.new 
Sunspot.session = Sunspot::IndexQueue::SessionProxy.new(
    Sunspot::IndexQueue.new(
    :session => Sunspot::Session.new{|config| config.solr.url = "http://#{SunspotConfig.hostname}:#{SunspotConfig.port}/solr"} 
) 
) 
</code> 

큐없이 사용하려면, 로컬 스레드 프록시가 자동으로 sunspot.yml 복구 당신 있도록해야한다 : 이것은 내가 (누군가가 구글에서이 페이지를 발견하면 그것을 게시) 내 경우에해야 할 일을했을 것입니다 걱정할 필요가 없습니다. sunspot.yml 파일에 관심이 있다면 Sunspot::Configuration 또는 Sunspot::Rails::Configuration을 시도하십시오. 인스턴스화하는 것을 잊지 마십시오.

2

내 질문에 답하십시오. 실제로 내 문제는 보석으로 설치했을 때 레일스 인식이 아닌 sunspot_mongoid로 밝혀졌습니다. 레일스 플러그인으로 thr 레일즈 프로젝트에 추가해야만 config/sunspot.yml이 올바르게로드됩니다.

+0

어떻게합니까? 이 보석을 플러그인으로 추가합니까? – Rafiu