Lucene.Net.Index.IndexWriter.HasDeletions C# (CSharp) Method

HasDeletions() public method

public HasDeletions ( ) : bool
return bool
		public virtual bool HasDeletions()
		{
			lock (this)
			{
				EnsureOpen();
				if (docWriter.HasDeletes())
					return true;
				for (int i = 0; i < segmentInfos.Count; i++)
					if (segmentInfos.Info(i).HasDeletions())
						return true;
				return false;
			}
		}
		

Usage Example

Beispiel #1
0
        public virtual void TestTryDeleteDocument()
        {
            Directory directory = CreateIndex();

            IndexWriter writer = GetWriter(directory);

            ReferenceManager <IndexSearcher> mgr = new SearcherManager(writer, true, new SearcherFactory());

            TrackingIndexWriter mgrWriter = new TrackingIndexWriter(writer);

            IndexSearcher searcher = mgr.Acquire();

            TopDocs topDocs = searcher.Search(new TermQuery(new Term("foo", "0")), 100);

            Assert.AreEqual(1, topDocs.TotalHits);

            long result;

            if (Random.NextBoolean())
            {
                IndexReader r = DirectoryReader.Open(writer, true);
                result = mgrWriter.TryDeleteDocument(r, 0);
                r.Dispose();
            }
            else
            {
                result = mgrWriter.TryDeleteDocument(searcher.IndexReader, 0);
            }

            // The tryDeleteDocument should have succeeded:
            Assert.IsTrue(result != -1);

            Assert.IsTrue(writer.HasDeletions());

            if (Random.NextBoolean())
            {
                writer.Commit();
            }

            Assert.IsTrue(writer.HasDeletions());

            mgr.MaybeRefresh();

            searcher = mgr.Acquire();

            topDocs = searcher.Search(new TermQuery(new Term("foo", "0")), 100);

            Assert.AreEqual(0, topDocs.TotalHits);
        }
All Usage Examples Of Lucene.Net.Index.IndexWriter::HasDeletions
IndexWriter