I faced a similar situation with Solr and solved it as follows:
A) Never run a full load on the live site. Only do a full load if the index is borken and needs to be deleted and rebuilt (with the main site down).
B) If a "refresh" is needed, do it as a background task - ie thread(s) - re-indexing each record individually, and deleting any new documents added (if appropriate).
The speed of processing bulk volumes can be greatly improved by using the multi-threaded indexer - see http://wiki.apache.org/lucene-java/ImproveIndexingSpeed