0

현재 SphinxThinkingSphinx gem을 사용하고 있습니다.각 배포마다 Sphinx를 다시 시작해야합니까?

나는 델타 인덱스를 cron을 통해 예약 된 색인과 함께 사용하고 있습니다. 문제는 각 배포에 대해 검색 프로세스를 다시 시작한다는 것입니다. 하루에 약 5 번 배포하며 검색 할 때마다 검색이 중단된다는 사실을 인정하지 않습니다. 매번 스핑크스를 다시 시작할 필요가 있습니까? 확실히 중단 시간을 달성 할 수있는 방법이 있습니까?

그런데 나는 Engineyard과 EY의이 특별한 요리 책인 Thinking Sphinx 3 Cookbook을 사용하고 있습니다.

그것은 조금 오래된 그리고 그것은 다음 말한다 :

는 또한 배포에 스핑크스를 다시 시작하는 배포 후크를 추가해야합니다.

아이디어가 있으십니까? 스핑크스의 최신 요리 책이 있습니까?

+2

실제로 검색 색인이나 데이터베이스 스키마를 변경하는 경우에만 sphinx를 다시 시작해야한다고 생각합니다. 일반 cronjob을 사용하면 스키마를 변경하더라도 어쨌든 업데이트됩니다. 그 페이지를 읽는 것에서부터 '재배치'가 아니라 '첫 배포'에 관한 이야기입니다. – barryhunter

+0

네, 그게 제가 상상하는 것입니다. 그러나 docs 페이지 (위에 링크되어 있음)에는 "Capistrano와의 배포"라는 섹션이있어 생각 스핑크스 중지/재시작을 유발합니다. – maru

답변

3

EngineYard 문서는 실제로 오래되었습니다. 의견에 Barry가 언급 한 것처럼 Sphinx 구성을 어떤 식 으로든 변경 한 경우 Sphinx를 다시 시작하면됩니다.

Thinking Sphinx 설명서에서 한 번 다시 시작을 제안했는데, 이는 아마도 EY 문서가 동일한 제안을하는 이유 일 수 있습니다.하지만 Sphinx에 대한 공유 경로를 사용하지 않는 경우에만 적용됩니다. 배포 관련 경로 (이전 방법)는 Sphinx 파일이 각 배포마다 다른 위치에 있다는 것을 의미하므로 최신 릴리스 디렉토리를 사용하려면 Sphinx를 다시 시작해야합니다. 공유 경로는 Sphinx 파일이 특정 배포와 관련이없는 동일한 위치에 항상 있음을 의미하므로 매번 다시 시작할 필요가 없습니다.

+0

우수! 고마워. – maru