search_update_totals() is not invoked / or search_cron() is not invoked
In some circunstances, you need to call search_update_totals() after indexing. The reason is that you need to make sure that it runs from the same location that you ran search_index, and after it.

In theory it is always called when you index using a cron job, but I am indexing with a drush command and I had to call it manually at the end. If the cron run failed it won't be called.