We have 90,000 nodes and it is currently re-indexing every hour (via cron) 200 pieces of contents. How can we have it do it all at once?
You could start by setting the number of items to index per cron run at 1000, and set the solr index cron hook to fire every 5 minutes using a drupal cron management module such as Elysia cron, which will allow you to set different intervals for all the other cron jobs on your site.
That's a reasonable setting to start with, which would be a big win over what it's currently set to, and would complete overnight. From there you could monitor for errors while tuning those 2 settings to see what the overhead on your system is.
Or you could just set that cron batch size variable on your Solr index to "-1" which is the magic setting that tells cron to index everything at once. Obviously, this has performance implications. Apache Solr Search in Drupal also has an "Index items immediately" option to force update the entire index as soon as you save the setting, and not wait for a cron run.