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

DeleteAll() public method

Delete all documents in the index.

This method will drop all buffered documents and will remove all segments from the index. This change will not be visible until a Commit() has been called. This method can be rolled back using Rollback().

NOTE: this method is much faster than using deleteDocuments( new MatchAllDocsQuery() ).

NOTE: this method will forcefully abort all merges in progress. If other threads are running Optimize() or any of the addIndexes methods, they will receive MergePolicy.MergeAbortedExceptions.

public DeleteAll ( ) : void
return void
		public virtual void  DeleteAll()
		{
			lock (this)
			{
				docWriter.PauseAllThreads();
				try
				{
					
					// Abort any running merges
					FinishMerges(false);
					
					// Remove any buffered docs
					docWriter.Abort();
					docWriter.SetFlushedDocCount(0);
					
					// Remove all segments
					segmentInfos.Clear();
					
					// Ask deleter to locate unreferenced files & remove them:
					deleter.Checkpoint(segmentInfos, false);
					deleter.Refresh();
					
					// Don't bother saving any changes in our segmentInfos
					readerPool.Clear(null);
					
					// Mark that the index has changed
					++changeCount;
				}
				catch (System.OutOfMemoryException oom)
				{
					HandleOOM(oom, "deleteAll");
				}
				finally
				{
					docWriter.ResumeAllThreads();
					if (infoStream != null)
					{
						Message("hit exception during deleteAll");
					}
				}
			}
		}
		

Usage Example

        public void ClearIndex()
        {
            if (System.IO.Directory.GetFiles(this.index.Directory.FullName).Any())
            {
                try
                {
                    var analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
                    using (var writer = new IndexWriter(this.index, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED))
                    {
                        // remove older index entries
                        writer.DeleteAll();

                        // close handles
                        analyzer.Close();
                        writer.Dispose();
                    }

                    ForceUnlockIndex();
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
All Usage Examples Of Lucene.Net.Index.IndexWriter::DeleteAll
IndexWriter