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) { }