If you are upgrading from Solr 3.x to Solr 4.x or between any two major releases then these are the things you should keep in mind while upgrading -
1. The index format is backward compatible between two consecutive major Solr versions. So a Solr 3.x index is compatible with a Solr 4.x index. However if you have a Solr 1.x index and want to upgrade to Solr 4.x then you would need to first upgrade to Solr 3.x first.
2. Your solrconfig.xml ,schema.xml and the solr.xml files need to be manually edited. That means you would need to go through the changes list of that major release and see what has been deprecated and removed to change your config files accordingly. Unfortunately there is no tool present currently which would help you do that in an automated fashion.
3. Make sure to upgrade your luceneMatchVersion attribute in the solrconfig.xml file to the release number.
4. As of Solr 4.8, Java 1.7 is now required to run Solr
5. Once you have successfully changed the configurations file and have got Solr up and running you would need to do one last thing - Issue an optimize command for your Solr cluster. This would ensure that the index gets rewritten using the default codec which comes with new enhancements internally.
Optimize command - http://host:port/solr/<collection-name>/update?optimize=true
If you are running SolrCloud you need to run this command on any one of the servers and it would issue it to all the nodes. If you are running multiple Solr instance in a master-slave setup then you have to fire the command on the each node explicitly.