2014-07-23 4 views
0

그래서 Thinking Sphinx 및 heroku 애드온 Flying Sphinx을 사용하고 있습니다.치명적 : 구성 파일 '/mypath/config/development.sphinx.conf'에 인덱스가 없습니다.

는 그러나, 나는, 더 구체적으로, 나는 acts_as_taggable 보석과를 사용하고 내가 다른 SO 게시물의 무리를 읽었지만 아무도 내 문제를 해결 도움이되지 않은 아래의 오류

using config file '/mypath/config/development.sphinx.conf'... 
FATAL: no indexes found in config file '/mypath/config/development.sphinx.conf' 

을 받고있는 것으로 보인다 태그가 인덱싱되지 않지만 다른 모든 태그는 잘 인덱싱됩니다.

ThinkingSphinx::Index.define :clip, :with => :real_time do 
    # fields 
    indexes :name 
    indexes sort_name, :sortable => true 
    indexes description 
    indexes taggings.tag.name, :as => :tags 
end 

태그가 연결되어 있기 때문에 문제가되는 것 같습니다.

내가 뭘 잘못하고 있니?

감사합니다.

답변

1

은 GitHub의 문제를 통해이 문제를 해결했습니다, 그러나 여기에서 다시 반복 :

방법 체인을 필드/정확하게 앱에서 자신을 호출했던 것과 같이해야합니다 실시간 인덱스 속성 - 그래서, taggings.tag.name은 아니다 유효한. 그것은 단지 없는와 방법을 가능으로, 그러나

clip.taggings.collect(&:tag).collect(&:name) 

하는 생각 스핑크스 지수 내에서 적용 할 수 없습니다 : 실제로, 당신이 싶어하면 다음 클립의 맥락에서이다 인수.

def tag_names 
    taggings.collect(&:tag).collect(&:name).join(' ') 
end 

다음 인덱스 정의의 것을 사용 : :이 주위에 작업이 태그 이름의 단일 문자열 값을 반환 모델의 방법을 정의하는 것입니다 이제

indexes tag_names, :as => :tags 

, 당신 ' 인덱스 정의가 변경되었으므로 실시간 인덱스를 사용하기 때문에 rake ts:regenerate 레이크 작업을 실행해야합니다. 귀하의 질문은 색인 생성 출력에서 ​​시작하며 ts:index 작업은 실시간 색인이 아닌 SQL 기반 색인에만 적용되므로 색인 구조를 변경할 때 ts:regenerate을 사용하고 Sphinx 데이터가 상당히 최신 버전이 아닌 경우 ts:generate을 사용해야합니다. 날짜 (예 : 데이터가 변경되었을 때 콜백이 발생하지 않은 경우)