lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roberto Ragusa <>
Subject Doing concurrent searches efficiently
Date Wed, 19 Jun 2013 10:57:54 GMT

I would like an expert opinion about how to optimally do concurrent
searches on the same index (let's suppose there are several threads
doing searches). Consider these options:

a) one IndexReader, all threads use it
b) cloned IndexReader's, each thread uses a clone
c) opened IndexReader's, each thread open and keeps its own IndexReader

What I would like to achieve is:

x) maximum CPU and memory efficiency (e.g. only one copy of norms vectors,
only one copy of FieldCache for a segment)
y) avoid performance issues related to locks
z) let each thread have an atomic view of the index, i.e. do a reopen when it wants
(and with no coordination with other threads)

I think z) is impossible to achieve with a).
Is it best to do b) or c) ?
I'm afraid c) implies multiple copy of the norms (!), while I'm not sure
about the FieldCache.

I'm talking about version 3.0, but I would be really interested to hear if
newer versions have different characteristics.


   Roberto Ragusa    mail at

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message