org.apache.lucene.search.suggest

## Class Sort

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

    public final class Sort
    extends Object

On-disk sorting of byte arrays. Each byte array (entry) is a composed of the following fields:

- (two bytes) length of the following byte array,
- exactly the above count of bytes for the sequence to be sorted.

See Also:
  `sort(File, File)`
WARNING: This API is experimental and might change in incompatible ways in the next release.
NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

### Nested Class Summary

Nested Classes
`static class` `Sort.BufferSize` A bit more descriptive unit for constructors.
`static class` `Sort.ByteSequencesReader` Utility class to read length-prefixed byte[] entries from an input.
`static class` `Sort.ByteSequencesWriter` Utility class to emit length-prefixed byte[] entries to an output stream for sorting.
`class` `Sort.SortInfo` Sort info (debugging mostly).

### Field Summary

Fields
`static long` `ABSOLUTE_MIN_SORT_BUFFER_SIZE` Absolute minimum required buffer size for sorting.
`static Comparator<BytesRef>` `DEFAULT_COMPARATOR` Default comparator: sorts in binary (codepoint) order
`static long` `GB` Convenience constant for gigabytes
`static int` `MAX_TEMPFILES` Maximum number of temporary files before doing an intermediate merge.
`static long` `MB` Convenience constant for megabytes
`static long` `MIN_BUFFER_SIZE_MB` Minimum recommended buffer size for sorting.

### Constructor Summary

Constructors
Constructor and Description
`Sort()` Defaults constructor.
`Sort(Comparator<BytesRef> comparator)` Defaults constructor with a custom comparator.
`Sort(Comparator<BytesRef> comparator, Sort.BufferSize ramBufferSize, File tempDirectory, int maxTempfiles)` All-details constructor.

### Method Summary

Methods
`static File` `defaultTempDir()` Returns the default temporary directory.
`Comparator<BytesRef>` `getComparator()` Returns the comparator in use to sort entries
`Sort.SortInfo` `sort(File input, File output)` Sort input to output, explicit hint for the buffer size.
`protected File` `sortPartition(int len)` Sort a single partition in-memory.

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

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

### Field Detail

#### MB

    public static final long MB

Convenience constant for megabytes

See Also:
  Constant Field Values

#### GB

    public static final long GB

Convenience constant for gigabytes

See Also:
  Constant Field Values

#### MIN_BUFFER_SIZE_MB

    public static final long MIN_BUFFER_SIZE_MB

Minimum recommended buffer size for sorting.

See Also:
  Constant Field Values

#### ABSOLUTE_MIN_SORT_BUFFER_SIZE

    public static final long ABSOLUTE_MIN_SORT_BUFFER_SIZE

Absolute minimum required buffer size for sorting.

See Also:
  Constant Field Values

#### MAX_TEMPFILES

    public static final int MAX_TEMPFILES

Maximum number of temporary files before doing an intermediate merge.

See Also:
  Constant Field Values

#### DEFAULT_COMPARATOR

    public static final Comparator<BytesRef> DEFAULT_COMPARATOR

Default comparator: sorts in binary (codepoint) order

### Constructor Detail

#### Sort

    public Sort()
         throws IOException

Defaults constructor.

Throws:
  `IOException`
See Also:
  `defaultTempDir()`, `Sort.BufferSize.automatic()`

#### Sort

    public Sort(Comparator<BytesRef> comparator)
         throws IOException

Defaults constructor with a custom comparator.

Throws:
  `IOException`
See Also:
  `defaultTempDir()`, `Sort.BufferSize.automatic()`

#### Sort

    public Sort(Comparator<BytesRef> comparator,
        Sort.BufferSize ramBufferSize,
        File tempDirectory,
        int maxTempfiles)

All-details constructor.

### Method Detail

#### sort

    public Sort.SortInfo sort(File input,
                     File output)
                       throws IOException

Sort input to output, explicit hint for the buffer size. The amount of allocated memory may deviate from the hint (may be smaller or larger).

Throws:
  `IOException`

#### defaultTempDir

    public static File defaultTempDir()
                               throws IOException

Returns the default temporary directory. By default, java.io.tmpdir. If not accessible or not available, an IOException is thrown

Throws:
  `IOException`

#### sortPartition

    protected File sortPartition(int len)
                          throws IOException

Sort a single partition in-memory.

Throws:
  `IOException`

#### getComparator

    public Comparator<BytesRef> getComparator()

Returns the comparator in use to sort entries