lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erick Erickson" <erickerick...@gmail.com>
Subject Re: IndexSearcher cache
Date Mon, 05 Mar 2007 17:43:47 GMT
<1>. Every time you close/open a reader, you pay a significant penalty
to warm up caches, etc. You may have to do some tricky dancing
to coordinate among the sessions to be able to close/reopen
the reader to allow updates to show up though.

Erick


On 3/5/07, Mohammad Norouzi <mnrz57@gmail.com> wrote:
>
> Hi Erick
> I am completely confused about this IndexReader.
> in my case, I have to keep the reader opened because of pagination of the
> result so I have to had a reader per session. the thing that baffled me is
> can only one reader service all the session at the same time?
>
> I mean
> 1- having one reader for all sessions and having a Hits for each session.
> 2- one reader per session.
> which one is right?
>
> On 3/5/07, Erick Erickson <erickerickson@gmail.com> wrote:
> >
> > There was quite a long discussion thread on this topic relatively
> > recently, try searching the archive for concurrence, perhaps
> > IndexReader, etc.
> >
> > The short take-away is that you should share a single instance
> > of the reader, since opening one is an expensive operation, and
> > the first searches you perform will incur some overhead while
> > underlying caches are built. You have to build in some mechanisms
> > for gracefully shutting it down when you need to re-open them if they
> > are being shared....
> >
> > Erick
> >
> >
> > On 3/4/07, MC Moisei <mcmoisei@comcast.net> wrote:
> > >
> > > Daniel,
> > >
> > > Thanks for replying. THe only reason I don't close my indexSearcher is
> > > that I got the "Too Many File Open Exception" and I decided to make my
> > > searcher static in the SearchService.
> > >
> > > If I do go and close then open a new one I may expose myself to some
> > > concurent access issues while people can update their files other can
> do
> > > the searches for those files ( My searcheables are files entities)
> > >
> > > Since the IndexSearcher has an underlying IndexReader I should use
> that
> > > one to handle the reads in the Interceptor but that won't do me too
> much
> > > good since I need certain methods that are no in IndexReader (
> and  BTW
> > > i thought I've mentioned that I use the IndexModifier that is a
> mixture
> > > of the IndexReader and IndexWriter ).
> > >
> > > Any ideas ?
> > >
> > > MC
> > >
> > >
> > >
> > > Daniel Noll wrote:
> > > > MC Moisei wrote:
> > > >> Hi to all members of the user group!
> > > >>
> > > >> Let me get to my problem. I use Lucene in two different parts of
> the
> > > >> application. One is the SearchService and one is an AOP interceptor
> > > that
> > > >> intercepts any changes in the Searcheable entities. This last part
> is
> > > >> removing the document from the index and add the document again.
> > > >>
> > > >> That being said, here's my test case.
> > > >>
> > > >> My searcheable item has in content "apple banana" if I search for
> > apple
> > > >> or banana I get it back amoung the results.
> > > >> If I modify it and remove banana from content when I search for
> apple
> > > or
> > > >> banana I get same results as above (!?)
> > > >> If I restart my application so the IndexSearcher is recreated, I
> run
> > > the
> > > >> test above I only get my document if I search for apple - that
> leads
> > me
> > > >> to conclude that the IndexSearcher caches the results.
> > > >
> > > > It doesn't "cache" the results, but what happens is the underlying
> > > > IndexReader effectively sees no changes for its lifetime (this is
> > > > presumably for safety; since usually you don't want the index
> changing
> > > > underneath while trying to do queries.)
> > > >
> > > >> Is there a way to clear IndexSeacher when I do the reindexing ( I
> use
> > > >> IndexModifer for the AOP interceptor) ?
> > > >
> > > > Yep.  Close the IndexSearcher and the IndexReader, and reopen them.
> > > >
> > > > If you need to do queries quite often then it probably makes sense
> to
> > > > do this only every now and then.
> > > >
> > > > Daniel
> > > >
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > > For additional commands, e-mail: java-user-help@lucene.apache.org
> > >
> > >
> >
>
>
>
> --
> Regards,
> Mohammad
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message