public void PurgeAll()
        {
            using (ISession s = OpenSession())
            {
                SearchFactoryImpl searchFactory = SearchFactoryImpl.GetSearchFactory(cfg);
                System.Type targetType = typeof(Document);
                IDirectoryProvider provider = searchFactory.GetDirectoryProviders(targetType)[0];
                Workspace workspace = new Workspace(searchFactory);

                using (ITransaction tx = s.BeginTransaction())
                {
                    Document doc = new Document("Hibernate in Action", "Object and Relational", "blah blah blah");
                    searchFactory.PerformWork(doc, 1, s, WorkType.Add);
                    doc = new Document("Object and Relational", "Hibernate in Action", "blah blah blah");
                    searchFactory.PerformWork(doc, 2, s, WorkType.Add);
                    tx.Commit();
                }
                Assert.AreEqual(2, workspace.GetIndexReader(provider, targetType).NumDocs(), "Documents created");

                using (ITransaction tx = s.BeginTransaction())
                {
                    LuceneWorker luceneWorker = new LuceneWorker(workspace);
                    luceneWorker.PerformWork(new PurgeAllLuceneWork(targetType), provider);
                }
                Assert.AreEqual(0, workspace.GetIndexReader(provider, targetType).NumDocs(), "Document purgation");
            }
        }
 public void Optimize(Workspace workspace)
 {
     if (!NeedOptimization)
         return;
     IndexWriter writer = workspace.GetIndexWriter(directoryProvider);
     try
     {
         writer.Optimize();
     }
     catch (Exception)
     {
     }
     OptimizationForced();
 }
        public void Optimize(Workspace workspace)
        {
            if (!NeedOptimization)
            {
                return;
            }

            if (log.IsDebugEnabled)
            {
                log.Debug("Optimize " + directoryProvider.Directory + " after " + operations + " operations and " + transactions + " transactions");
            }

            IndexWriter writer = workspace.GetIndexWriter(directoryProvider);
            try
            {
                writer.Optimize();
            }
            catch (IOException e)
            {
                throw new SearchException("Unable to optimize directoryProvider: " + directoryProvider.Directory, e);
            }

            OptimizationForced();
        }
 public void Optimize(Workspace workspace)
 {
 }