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 Initialize(Configuration cfg) { searchFactory = SearchFactoryImpl.GetSearchFactory(cfg); string indexingStrategy = cfg.GetProperty(Environment.IndexingStrategy) ?? "event"; if ("event".Equals(indexingStrategy)) { used = searchFactory.DocumentBuilders.Count != 0; } else if ("manual".Equals(indexingStrategy)) { used = false; } else { throw new SearchException(Environment.IndexBase + " unknown: " + indexingStrategy); } }
public void Optimize() { var searchFactory = SearchFactoryImpl.GetSearchFactory(thisRepo.context.CurrentConfiguration); searchFactory.Optimize(typeof(T)); }