2014-01-21 4 views
3

코어 인덱스가 작동하지만 델타 인덱스가 작동하지 않습니다. 그러나 이상한 것은 로그 파일에 오류나 경고가 없으므로 디버깅하는 방법을 모른다는 것입니다. 나는 phusion-passenger와 Webbrick으로 로컬 테스트를했습니다. 결과는 같습니다. 난 레일 3.2.13과 생각 - 스핑크스 3.1.0을 사용합니다.Thinking Sphinx에서 델타 인덱싱이 작동하지 않습니다.

내 인덱스 정의 : 나는 또한 같은 결과를 지연 델타를 사용하여 시도

ThinkingSphinx::Index.define :log, :with => :active_record, :delta => true do 
    indexes msg, :sortable => true 
    has moment, :type => :timestamp 
    has program, :type => :string 
end 

.

아이디어가 있으십니까?

감사합니다.

편집 : 나는 데이터베이스에 MySQL을 통해 직접 데이터를 기록하기 때문에 이인가? 레일스 + active_record를 사용하면 새로운 레코드 만 인식됩니까?

+0

물론 ts를 다시 색인 하시겠습니까? –

+0

물론 그렇습니다. – Asco

답변

1

편집 내용이 정확합니다. 델타는 ActiveRecord 콜백을 통해서만 실행되므로 표준 ActiveRecord 워크 플로를 통해 개체를 편집/추가하지 않으면 Sphinx 색인이 업데이트되지 않습니다. 이 호출 될 때 콜백 (update_attributessave 등과 달리)가 호출되지 않는 한, :

같은 것은 update_attribute 방법 (단수 버전 주)에 적용됩니다.

+0

그래서 생각 스핑크스 2.1.0으로 다운 그레이드하고 datetime-delta-indexing을 사용해야합니까? – Asco

+0

'indexer --config config/production.sphinx.conf log_delta --rotate'를 실행하여 현재 접근 방식으로 수동으로 델타 인덱서를 실행할 수 있습니다. 아마도 당신은 datetime 델타가 앞으로 나아갈 수있는 최선의 방법이라고 생각하는 이유를 자세히 설명하고 싶습니까? – pat

+0

또한 ts-datetime-delta의 최신 커밋은 TS v3을 지원합니다. – pat

관련 문제