What happens if you close the writer before instantiating
a new searcher? I can't say for sure whether it matters,
but it's worth a try..

Erick

On 10/25/07, Guilherme Barile <[EMAIL PROTECTED]> wrote:
>
> Hello
>         I wrote a simple class to abstract searching on a text file
> (generate by a legacy system).
>
>         class MyFile { private Searcher s; private long timestamp; }
>
>         It creates a timer and checks every ten minutes if
> textfile.lastModified() is diferent from the number it cached on
> timestamp, and recreates the index. There's  a search(query) method
> which parses the query and returns an arraylist of objects.
>         My index lies on RAM, so everytime I rebuild it, i do something
> like
>
>         private void run() {
>                 File f = new File(textfile);
>
>                 if(f.lastModified() == this.timestamp) return;
>
>                 RAMDirectory idx = new RAMDirectory();
>                 IndexWriter writer = new IndexWriter(idx, new
> StandardAnalyzer
> (),true);
>                         // here I parse the text file and add the
> documents to the index
>
>                 // update the searcher and timestamp
>                 this.s = new IndexSearcher(idx);
>                 timestamp = lastModified;
>         }
>
>         Problem is: it seems the searcher is not being updated. All search
> operations occur in this class (using my own search method) accessing
> "this.s" directly
>
>         Is there any better approach for doing this (reloading the
> searcher) ?
>
> Thanks a lot
>
>
> gui
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to