This sounds too familiar... >java settings used - java -Xmx1024M -Xms1024M Sounds like your settings are pretty low... if you're using 64bit JVM, you should be able to set these much higher, maybe give it like 8gb.
Another thing, you may want to look at reducing the index size... is there any way you could partition the index? Also only index fields which you need and do not store the values in the index. I've originally had an index which was 50Gb in size, and after removing fields I do not need, I'm down to 8Gb and not storing any values in the index.