I doubt you may be using sorts on a large index.
That is one thing I know can require a large array size with Lucene.
You might want to try using a 64-bit JVM with these options:
-Xmx6G -XX:MaxPermSize=128M -XX:+UseCompressedOops
The last option will reduce 64-bit memory pointers to 32-bit This typically reduces the memory overhead by about 40%, so it can help stretch your memory significantly.
This will solve your memory related issue.