lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lance Norskog <>
Subject Re: what's better for in memory searching?
Date Fri, 08 Jun 2012 09:53:41 GMT
Yes, use MMapDirectory. It is faster and uses memory more efficiently
than RAMDirectory. This sounds wrong, but it is true. With
RAMDirectory, Java has to work harder doing garbage collection.

On Fri, Jun 8, 2012 at 1:30 AM, Li Li <> wrote:
> hi all
>   I want to use lucene 3.6 providing searching service. my data is
> not very large, raw data is less that 1GB and I want to use load all
> indexes into memory. also I need save all indexes into disk
> persistently.
>   I originally want to use RAMDirectory. But when I read its javadoc.
>   Warning: This class is not intended to work with huge indexes.
> Everything beyond several hundred megabytes
>  will waste resources (GC cycles), because it uses an internal buffer
> size of 1024 bytes, producing millions of byte
>  [1024] arrays. This class is optimized for small memory-resident
> indexes. It also has bad concurrency on
>  multithreaded environments.
> It is recommended to materialize large indexes on disk and use
> MMapDirectory, which is a high-performance
>  directory implementation working directly on the file system cache of
> the operating system, so copying data to
>  Java heap space is not useful.
>    should I use MMapDirectory? it seems another contrib instantiated.
> anyone test it with RAMDirectory?

Lance Norskog

View raw message