org.apache.lucene.search.suggest

## Class SortedTermFreqIteratorWrapper

- java.lang.Object
- - org.apache.lucene.search.suggest.SortedTermFreqIteratorWrapper

All Implemented Interfaces:
  TermFreqIterator, BytesRefIterator

    public class SortedTermFreqIteratorWrapper
    extends Object
    implements TermFreqIterator

This wrapper buffers incoming elements and makes sure they are sorted based on given comparator.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.lucene.search.spell.TermFreqIterator

`TermFreqIterator.TermFreqIteratorWrapper`

### Field Summary

### Fields inherited from interface org.apache.lucene.util.BytesRefIterator

`EMPTY`

### Constructor Summary

Constructors
Constructor and Description
`SortedTermFreqIteratorWrapper(TermFreqIterator source)` Creates a new sorted wrapper, using `BytesRef.getUTF8SortedAsUnicodeComparator()` for sorting.
`SortedTermFreqIteratorWrapper(TermFreqIterator source, Comparator<BytesRef> comparator)` Creates a new sorted wrapper, sorting by BytesRef (ascending) then cost (ascending).

### Method Summary

Methods
`protected long` `decode(BytesRef scratch, ByteArrayDataInput tmpInput)` decodes the weight at the current position
`protected void` `encode(Sort.ByteSequencesWriter writer, ByteArrayDataOutput output, byte[] buffer, BytesRef spare, long weight)` encodes an entry (bytes+weight) to the provided writer
`Comparator<BytesRef>` `getComparator()`
`BytesRef` `next()`
`long` `weight()` A term's weight, higher numbers mean better suggestions.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SortedTermFreqIteratorWrapper

    public SortedTermFreqIteratorWrapper(TermFreqIterator source)
                                  throws IOException

Creates a new sorted wrapper, using `BytesRef.getUTF8SortedAsUnicodeComparator()` for sorting.

Throws:
  `IOException`

#### SortedTermFreqIteratorWrapper

    public SortedTermFreqIteratorWrapper(TermFreqIterator source,
                                 Comparator<BytesRef> comparator)
                                  throws IOException

Creates a new sorted wrapper, sorting by BytesRef (ascending) then cost (ascending).

Throws:
  `IOException`

### Method Detail

#### getComparator

    public Comparator<BytesRef> getComparator()

Specified by:
  `getComparator` in interface `BytesRefIterator`

#### next

    public BytesRef next()
                  throws IOException

Specified by:
  `next` in interface `BytesRefIterator`
Throws:
  `IOException`

#### weight

    public long weight()

Description copied from interface: `TermFreqIterator`
A term's weight, higher numbers mean better suggestions.

Specified by:
  `weight` in interface `TermFreqIterator`

#### encode

    protected void encode(Sort.ByteSequencesWriter writer,
              ByteArrayDataOutput output,
              byte[] buffer,
              BytesRef spare,
              long weight)
                   throws IOException

encodes an entry (bytes+weight) to the provided writer

Throws:
  `IOException`

#### decode

    protected long decode(BytesRef scratch,
              ByteArrayDataInput tmpInput)

decodes the weight at the current position