## org.apache.lucene.facet.encoding
Class EightFlagsIntEncoder

    java.lang.Object
      org.apache.lucene.facet.encoding.IntEncoder
          org.apache.lucene.facet.encoding.ChunksIntEncoder
              org.apache.lucene.facet.encoding.EightFlagsIntEncoder

    public class EightFlagsIntEncoder

extends ChunksIntEncoder

A `ChunksIntEncoder` which encodes data in chunks of 8. Every group starts with a single byte (called indicator) which represents 8 - 1 bit flags, where the value:

- 1 means the encoded value is '1'
- 0 means the value is encoded using `VInt8IntEncoder`, and the encoded bytes follow the indicator.
  Since value 0 is illegal, and 1 is encoded in the indicator, the actual value that is encoded is `value-2`, which saves some more bits.

Encoding example:

- Original values: 6, 16, 5, 9, 7, 1
- After sorting: 1, 5, 6, 7, 9, 16
- D-Gap computing: 1, 4, 1, 1, 2, 5 (so far - done by `DGapIntEncoder`)
- Encoding: 1,0,1,1,0,0,0,0 as the indicator, by 2 (4-2), 0 (2-2), 3 (5-2).
- Binary encode: 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 00000010 00000000 00000011 (indicator is underlined).
  NOTE: the order of the values in the indicator is lsb ⇒ msb, which allows for more efficient decoding.

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

Field Summary

Fields inherited from class org.apache.lucene.facet.encoding.ChunksIntEncoder
`encodeQueue, indicator, ordinal`

Constructor Summary
`EightFlagsIntEncoder()`

Method Summary
`IntDecoder` `createMatchingDecoder()` Returns an `IntDecoder` which can decode the values that were encoded with this encoder.
`void` `encode(IntsRef values, BytesRef buf)` Encodes the values to the given buffer.
`String` `toString()`

Methods inherited from class org.apache.lucene.facet.encoding.ChunksIntEncoder
`encodeChunk`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### EightFlagsIntEncoder

    public EightFlagsIntEncoder()

Method Detail

### encode

    public void encode(IntsRef values,
                       BytesRef buf)

  Description copied from class: `IntEncoder`
  Encodes the values to the given buffer. Note that the buffer's offset and length are set to 0.

  Specified by:
    `encode` in class `IntEncoder`

### createMatchingDecoder

    public IntDecoder createMatchingDecoder()

  Description copied from class: `IntEncoder`
  Returns an `IntDecoder` which can decode the values that were encoded with this encoder.

  Specified by:
    `createMatchingDecoder` in class `IntEncoder`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.