Hi all, I'm using Lucene version 7.5.0. We have a test that does something like:
Thread 1: Field idStringField = new StringField("id", id, Field.Store.YES); Field contentsField = new TextField("contents", reader); Document document = new Document(); document.add(idStringField); document.add(contentsField); writer.updateDocument(new Term(ID_FIELD, id), document); writer.flush(); // not sure this flush is needed? writer.commit(); Thread 2: searchManager.maybeRefreshBlocking(); IndexSearcher searcher = searchManager.acquire(); try { QueryParser parser = new QueryParser("contents", analyzer); Query luceneQuery = parser.parse(queryText); ScoreDoc[] hits = searcher.search(luceneQuery, 50).scoreDocs; } finally { searchManager.release(searcher); } Thread 1 happens before Thread 2. Sometimes, only sometimes, the commit from thread 1 is not *immediately* visible in Thread 2. If I put a "Thread.sleep(1000)" it always works. Without it, sometimes the search is empty. I'm not sure if I'm doing something wrong or this is a bug? Thanks!