Exemple #1
0
        public void CanDeleteAndCompact()
        {
            using (var fullTextIndex = new FullTextIndex(StorageEnvironmentOptions.CreateMemoryOnly(), new DefaultAnalyzer()))
            {
                fullTextIndex.Conventions.AutoCompact = false;
                using (var indexer = fullTextIndex.CreateIndexer())
                {
                    indexer.NewIndexEntry();

                    indexer.Index("Name", "Oren Eini");

                    indexer.NewIndexEntry();

                    indexer.Index("Name", "Ayende Rahien");

                    indexer.Flush();
                }

                using (var indexer = fullTextIndex.CreateIndexer())
                {
                    indexer.DeleteIndexEntry(1);

                    indexer.Flush();
                }


                using (var searcher = fullTextIndex.CreateSearcher())
                {
                    Assert.Equal(0, searcher.Query(new TermQuery("Name", "oren")).Count());
                    Assert.Equal(1, searcher.Query(new TermQuery("Name", "rahien")).Count());
                }
                Assert.Equal(2, fullTextIndex.NumberOfDocuments);
                Assert.Equal(1, fullTextIndex.NumberOfDeletes);
                fullTextIndex.RunCompaction();

                using (var searcher = fullTextIndex.CreateSearcher())
                {
                    Assert.Equal(0, searcher.Query(new TermQuery("Name", "oren")).Count());
                    Assert.Equal(1, searcher.Query(new TermQuery("Name", "rahien")).Count());
                }
                Assert.Equal(1, fullTextIndex.NumberOfDocuments);
                Assert.Equal(0, fullTextIndex.NumberOfDeletes);
            }
        }