Thanks for the advice. I forgot to mention, I am already calling searcher.maybeRefresh() immediately after deleting the documents. Furthermore, searcherManager is being instantiated with applyAllDeletes set to true. We are using the searchAfter function. Under these circumstances, the deleted items are still present. Any further ideas?

On 2014/07/11, 12:30 AM, Tri Cao wrote:
You need to reopen your searcher after deleting. From Java doc for SearcherManager:

In addition you should periodically call maybeRefresh <eclipse-javadoc:%E2%98%82=lucene-solr/lucene%5C/core%5C/src%5C/java%3Corg.apache.lucene.search%7BSearcherManager.java%E2%98%83SearcherManager%E2%98%82%E2%98%82maybeRefresh>. While it's possible to call this just before running each query, this is discouraged since it penalizes the unlucky queries that do the reopen. It's better to use a separate background thread, that periodically calls maybeReopen. Finally, be sure to call close <eclipse-javadoc:%E2%98%82=lucene-solr/lucene%5C/core%5C/src%5C/java%3Corg.apache.lucene.search%7BSearcherManager.java%E2%98%83SearcherManager%E2%98%82%E2%98%82close> once you are done.

On Jul 10, 2014, at 01:56 PM, Jamie <ja...@mailarchiva.com> wrote:

Hi

I am using NRT search with the SearcherManager class. When the user
elects to delete some documents, writer.deleteDocuments(terms) is called.

The problem is that deletes are not immediately visible. What does it
take to make them so? Even after calling commit(), the deleted
documents are still returned.

What is the recommended way to obtain a near realtime search result that
immediately reflect all deleted documents?

Much appreciate

Jamie

Reply via email to