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

Reply via email to