code: public void searchAtomic (@Nonnull final Query aQuery, @Nonnull final Collector aCollector) throws IOException
    {
      ValueEnforcer.notNull (aQuery, "Query");
      ValueEnforcer.notNull (aCollector, "Collector");
  
      m_aLucene.readLockedAtomic ( () -> {
        final IndexSearcher aSearcher = m_aLucene.getSearcher ();
        if (aSearcher != null)
        {
          if (LOGGER.isDebugEnabled ())
            LOGGER.debug ("Searching Lucene: " + aQuery);
  
          // Search all documents, collect them
          _timedSearch ( () -> aSearcher.search (aQuery, aCollector), aQuery);
        }
        else
          LOGGER.error ("Failed to obtain IndexSearcher for " + aQuery);
  
        // Return values does not matter
        return null;
      });
    }
docs: Search all documents matching the passed query and pass the result on to
  the provided {@link Consumer}.
  
  @param aQuery
  Query to execute. May not be <code>null</code>-
  @param aCollector
  The Lucene collector to be used. May not be <code>null</code>.
  @throws IOException
  On Lucene error
  @see #getAllDocuments(Query,int)