Package 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.DelegatingCacheHelper, 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`

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

`subReadersSorter`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`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, getDocCount, getSequentialSubReaders, getSumDocFreq, getSumTotalTermFreq, maxDoc, numDocs, readerBase, readerIndex, storedFields, termVectors, totalTermFreq`

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

`getContext, toString`

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

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

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

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

## Constructor Details

### 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 Details

### 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`