Bill,

I don´t know of any automatic method to get notified
of index changes.

One option is that the process that updates the index
send a signal to the search deamon.
Or, the search deamon may have a thread that
periodically checks for new indexes (I think of two
possible checks: check the version from within
IndexSearcher/IndexReader, or check the modification
date of the index directory).

After detecting a new index, the search daemon should
open a new IndexSearcher and release the previous one.

Hope that it helps,

Regards,

Alejandro


 --- Bill Janssen <[EMAIL PROTECTED]> escribió:

> Daniel,
> 
> Thanks for the note.  But I think you misunderstand
> a bit (or I do :-).
> 
> These are two separate processes.  The updater (in
> Java) runs and
> exits, flushing its buffers, over and over again, as
> new info comes
> in.
> 
> The query server (in Python), however, runs
> continuously, doing
> searches and sending back results.  It keeps its
> IndexReader open for
> long periods.  What I'm wondering is if the
> IndexReader/IndexSearcher
> will automatically update its in-memory version of
> the index when the
> index files change, or whether we need to do some
> kind of explicit
> check (like calls to getCurrentVersion()) in order
> to explicitly
> re-load the index.  Some postings about
> transactional updates make me
> hopeful that there is some automatic system at work.
> 
> Bill
> 
> > Bill Janssen wrote:
> > > I've got a daemon process which keeps an
> IndexSearcher open on an
> > > index and responds to query requests by sending
> back document
> > > identifiers.  I've also got other processes
> updating the index by
> > > re-indexing existing documents, deleting
> obsolete documents, and
> > > adding new documents.  Is there any way to
> notify the IndexSearcher
> > > that the index has changed, and to (somehow?)
> re-read it?  Or is that
> > > automatic?  Will it just re-load the index as
> necessary?
> > >   
> > We have similar index modification notification in
> our own application, 
> > though we use it to keep track of the state of
> indexing (when the index 
> > is saved, we save other files, mainly a queue
> which tracks what is yet 
> > to be processed.)
> > 
> > One thing you'll probably notice pretty soon is
> that the index writer 
> > keeps a whole lot of segments in-memory (in order
> to be so fast.)  So 
> > not every document added to the index will
> necessarily result in a write 
> > to disk.
> > 
> > What we did for ours is to make a new class
> extending IndexWriter, 
> > overriding this method:
> > 
> >     public void addDocument(Document doc, Analyzer
> analyzer) throws 
> > IOException
> >     {
> >         long lastUpdate =
> segmentsFile.lastModified();
> >         if (lastUpdate > lastRecordedUpdate)
> >         {
> >             fireSegmentsMerged();
> >            
> >             lastRecordedUpdate = lastUpdate;
> >         }
> >     }
> > 
> > Of course I've omitted all the event firing,
> adding/removing listeners, 
> > and so forth, we've just used standard JavaBeans
> event handling for all 
> > of this.
> > 
> > It's dirty, but it works.  If there's a better
> way, I'm definitely 
> > interested in hearing what it is. :-D
> > 
> > Note though, opening an index can be expensive. 
> It might not be 
> > particularly good for performance if you expect
> the index to be modified 
> > quite often... accepting a bit of lag between
> adding entries and having 
> > them available can help performance a lot.
> > 
> > Daniel
> > 
> > 
> > -- 
> > Daniel Noll
> > 
> > Nuix Australia Pty Ltd
> > Suite 79, 89 Jones St, Ultimo NSW 2007, Australia
> > Phone: (02) 9280 0699
> > Fax:   (02) 9212 6902
> > 
> > This message is intended only for the named
> recipient. If you are not
> > the intended recipient you are notified that
> disclosing, copying,
> > distributing or taking any action in reliance on
> the contents of this
> > message or attachment is strictly prohibited.
> > 
> > 
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > For additional commands, e-mail:
> [EMAIL PROTECTED]
> > 
> 
> 
> 
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 



        


        
                
___________________________________________________________ 
1GB gratis, Antivirus y Antispam 
Correo Yahoo!, el mejor correo web del mundo 
http://correo.yahoo.com.ar 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to