lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anshum <ansh...@gmail.com>
Subject Re: deleteDocuments() does not work
Date Wed, 28 Oct 2009 10:49:43 GMT
Hi Dinh,
Is it that your engine keeps an IndexSearcher[Reader] open all through this
while? For the deleted document to actually reflect in the search (service),
you'd need to reload the index searcher with the latest version.
--
Anshum Gupta
Naukri Labs!
http://ai-cafe.blogspot.com

The facts expressed here belong to everybody, the opinions to me. The
distinction is yours to draw............


On Wed, Oct 28, 2009 at 4:15 PM, Dinh <pcdinh@gmail.com> wrote:

> Hi all,
>
> I have a very simple method to delete a document that is indexed before
>
>    /**
>     * @param id
>     */
>    public void deleteById(String id) throws IOException {
>        IndexWriter writer = IndexWriterFactory.factory();
>
>        try {
>            writer.deleteDocuments(new Term(Configuration.Field.ID,
> String.valueOf(id)));
>            writer.commit();
>        } catch (ArrayIndexOutOfBoundsException e) {
>            // CHECK ignore this. Can happen if index has not been built yet
>        } catch (IOException e) {
>            System.out.println(e);
>        }
>    }
>
> The problem is after executing this method without any exception, I come
> back and try to do a search the supposed-to-be-deleted record is still
> there. I need to restart my servlet engine to have that record been really
> deleted. How can it happen?
>
> Thanks
>
> Dinh
>

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