How do I set up Search API index as cron task?
You are right insofar as a node will only get reindexed when it is updated. Someone viewing the node isn't seen as an update, so incrementing the number of views won't cause the node to be reindexed.

It's not normal to rebuild the entire index on a schedule. Cron only re-indexes those nodes that have been marked as needing to be indexed.

There are two ways I can think of you might schedule a nightly rebuild of the index. 


If you have access to the server at command line level you could run the drush command "search-api-reindex" via a custom cron job. Run it as the same user as the web-server (eg. apache or www-user) and use the -l option to specify the url so the cron line would be something like: 0 23 * * * cd /var/www/home &amp;&amp; drush sapi-r default
Otherwise you could write your own cron hook in a custom module to do the same. The module elysia_cron would help with scheduling it for the right time. You'd need to call search_api_index_reindex('default'); to have the same effect as the cron job in point 1.