2014-11-27 3 views
3

데이터베이스에 Posgresql이있는 RoR 앱이 있습니다. 검색 엔진으로 Sphinx를 사용하고 Sphinx Gem을 생각하여 검색 기능을 설정하려고합니다. 나는 sphinx를 mysql과 postgresql 지원과 함께 설치했다. sphinx v3 gem을 생각하면 의존성이 생긴다.Ruby on Rails 응용 프로그램의 검색 결과 페이지에서 스핑크스 연결 오류가 발생했습니다.

명령

레이크 TS : 인덱스 오류없이

수행한다. 로그에는 20 개의 문서가 색인 생성되어 있다고 나와 있습니다 (포스트 모델의 모든 내 기록). 그런 다음 컨트롤러를 만들고 검색 결과 페이지를 보려고했습니다. 다음은 컨트롤러의 검색 행동

def search 
    @query = Riddle::Query.escape(params[:q]) 
    @posts = Post.search(@query) 
end 

의 내가 검색보기에서 @posts 변수를 사용하려고하면

로컬 호스트 : 3000/검색 Q =

안녕하세요 저는 오류를 다음했다. MySQL의 프로토콜을 통해 스핑크스에 연결

홈페이지 번호 검색에서 ThinkingSphinx :: ConnectionError

오류가 발생했습니다. MySQL 프로토콜을 통해 Sphinx에 연결하는 중 오류가 발생했습니다. MySQL 서버에 '127.0.0.1'(61)에 연결할 수 없습니다. SELECT * FROM post_core WHERE MATCH ('hello') AND sphinx_deleted = 0 LIMIT 0, 20; SHOW META는

답변

1

생각 스핑크스는 내부 목적을 위해 MySQL을 사용하면 예를 들어, 귀하의 스택에 mysql2 보석을 추가해야합니다 :

ts:index 작업이 바로 스핑크스 데이터를 저장
gem 'mysql2', '~> 0.3.13' 
gem 'thinking-sphinx', '~> 3.1.1' 
5

, 그것은 시작되지 않습니다 검색 요청에 응답하는 데몬. 이 문제가 발생하면 ts:start 레이크 작업을 실행해야합니다.

기타 : ts:rebuild이 모든 작업을 한 번에 수행합니다. 스핑크스 (실행중인 경우)를 중지하고 데이터를 인덱싱하며 스핑크스를 시작합니다.

+0

내 덕분에 저장했습니다. –