The idea is that the default implementation should not hold everything in memory, we can have a "Memory" impl for that. I think stuff being all in heap memory is just a relic of FieldCache.
In my benchmarking diskdv works well, and its much easier to manage (keep a smaller heap, leave it to the OS, no OOMs etc from merging large FSTs, ...)
If someone wants to optimize by forcing everything in memory, they can then use the usual approach (e.g. just use FileSwitchDirectory, or pick "Memory" for even more efficient stuff).
Ill keep the issue here for a bit. If we decide to do this, ill work up file format docs and so on. We should also fix a few things that are not great about it (
LUCENE-5122) before making it the default.