org.apache.lucene.index

## Class SoftDeletesDirectoryReaderWrapper

- java.lang.Object
- - org.apache.lucene.index.IndexReader
  - - org.apache.lucene.index.CompositeReader
    - - org.apache.lucene.index.BaseCompositeReader<LeafReader>
      - - org.apache.lucene.index.DirectoryReader
        - - org.apache.lucene.index.FilterDirectoryReader
          - - org.apache.lucene.index.SoftDeletesDirectoryReaderWrapper

All Implemented Interfaces:
  Closeable, AutoCloseable

    public final class SoftDeletesDirectoryReaderWrapper
    extends FilterDirectoryReader

This reader filters out documents that have a doc values value in the given field and treat these documents as soft deleted. Hard deleted documents will also be filtered out in the life docs of this reader.

See Also:
  `IndexWriterConfig.setSoftDeletesField(String)`, `IndexWriter.softUpdateDocument(Term, Iterable, Field...)`, `SoftDeletesRetentionMergePolicy`

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.index.FilterDirectoryReader

`FilterDirectoryReader.SubReaderWrapper`

### Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader

`IndexReader.CacheHelper, IndexReader.CacheKey, IndexReader.ClosedListener`

### Field Summary

### Fields inherited from class org.apache.lucene.index.FilterDirectoryReader

`in`

### Fields inherited from class org.apache.lucene.index.DirectoryReader

`directory`

### Constructor Summary

Constructors
Constructor and Description
`SoftDeletesDirectoryReaderWrapper(DirectoryReader in, String field)` Creates a new soft deletes wrapper.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected DirectoryReader` `doWrapDirectoryReader(DirectoryReader in)` Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader.
`IndexReader.CacheHelper` `getReaderCacheHelper()` Optional method: Return a `IndexReader.CacheHelper` that can be used to cache based on the content of this reader.

### Methods inherited from class org.apache.lucene.index.FilterDirectoryReader

`doClose, doOpenIfChanged, doOpenIfChanged, doOpenIfChanged, getDelegate, getIndexCommit, getVersion, isCurrent, unwrap`

### Methods inherited from class org.apache.lucene.index.DirectoryReader

`directory, indexExists, listCommits, open, open, open, open, open, open, openIfChanged, openIfChanged, openIfChanged, openIfChanged`

### Methods inherited from class org.apache.lucene.index.BaseCompositeReader

`docFreq, document, getDocCount, getSequentialSubReaders, getSumDocFreq, getSumTotalTermFreq, getTermVectors, maxDoc, numDocs, readerBase, readerIndex, totalTermFreq`

### Methods inherited from class org.apache.lucene.index.CompositeReader

`getContext, toString`

### Methods inherited from class org.apache.lucene.index.IndexReader

`close, decRef, document, document, ensureOpen, equals, getRefCount, getTermVector, hasDeletions, hashCode, incRef, leaves, numDeletedDocs, registerParentReader, tryIncRef`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### SoftDeletesDirectoryReaderWrapper

    public SoftDeletesDirectoryReaderWrapper(DirectoryReader in,
                                             String field)
                                      throws IOException

Creates a new soft deletes wrapper.

Parameters:
  `in` - the incoming directory reader
  `field` - the soft deletes field
Throws:
  `IOException`

### Method Detail

#### doWrapDirectoryReader

    protected DirectoryReader doWrapDirectoryReader(DirectoryReader in)
                                             throws IOException

Description copied from class: `FilterDirectoryReader`
Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader. Implementations should just return an instantiation of themselves, wrapping the passed in DirectoryReader.

Specified by:
  `doWrapDirectoryReader` in class `FilterDirectoryReader`
Parameters:
  `in` - the DirectoryReader to wrap
Returns:
  the wrapped DirectoryReader
Throws:
  `IOException`

#### getReaderCacheHelper

    public IndexReader.CacheHelper getReaderCacheHelper()

Description copied from class: `IndexReader`
Optional method: Return a `IndexReader.CacheHelper` that can be used to cache based on the content of this reader. Two readers that have different data or different sets of deleted documents will be considered different.

A return value of `null` indicates that this reader is not suited for caching, which is typically the case for short-lived wrappers that alter the content of the wrapped reader.

Specified by:
  `getReaderCacheHelper` in class `IndexReader`