I am currently using Sphinx with ThinkingSphinx gem for Rails.
I am using delta indices with scheduled indexing via cron. The problem is, for each deploy, I restart the searchd process. I deploy around 5 times a day and it's not acceptable for me that search goes down every time I do. Is there really a need to restart sphinx every time? Surely, there is a way to achieve no downtime?
By the way, I'm using Engineyard and this particular cookbook from EY, Thinking Sphinx 3 Cookbook.
It's a bit old and it says the following:
You will also need to add a deploy hook to restart Sphinx on deploy.
Any ideas? Are there more updated cookbooks for Sphinx?
The EngineYard docs are indeed out of date. As Barry's mentioned in the comments, you only need to restart Sphinx if you've changed your Sphinx configuration in some way.
The Thinking Sphinx documentation once suggested a restart - which is perhaps why the EY docs make the same suggestion - but that only applies if you're not using shared paths for Sphinx. Deploy-specific paths (the previous approach) would mean Sphinx files are in a different spot for each deploy, and thus the restart was required to use the latest release directory. Shared paths, though, means that Sphinx files are always in the same spot, unrelated to a specific deploy, and thus you don't need to restart every time.