Which Solr version do you have? In 3.x and trunk, Tiered and
BalancedSegment are there for exactly this reason.
In Solr 1.4, your only trick is to do a partial optimize with
maxSegments. This lets you say "optimize until there are 15 segments,
then stop". Do this with smaller and smaller numbers.
I'm using Solr 3.2 with a mergeFactor of 10 and no merge policy configured,
thus using the default LogByteSizeMergePolicy. Before I do an optimize,
typically the largest segment will be about 90% of the total index size.
When I do an optimize, the total disk space required is usually about 2x t