org.apache.lucene.analysis.ko.dict

## Class BinaryDictionary

- java.lang.Object
- - org.apache.lucene.analysis.ko.dict.BinaryDictionary

All Implemented Interfaces:
  Dictionary

Direct Known Subclasses:
  TokenInfoDictionary, UnknownDictionary

    public abstract class BinaryDictionary
    extends Object
    implements Dictionary

Base class for a binary-encoded in-memory dictionary.

### Nested Class Summary

Nested Classes
`static class` `BinaryDictionary.ResourceScheme` Used to specify where (dictionary) resources get loaded from.

### Nested classes/interfaces inherited from interface org.apache.lucene.analysis.ko.dict.Dictionary

`Dictionary.Morpheme`

### Field Summary

Fields
`static String` `DICT_FILENAME_SUFFIX`
`static String` `DICT_HEADER`
`static int` `HAS_READING` flag that the entry has reading data.
`static int` `HAS_SINGLE_POS` flag that the entry has a single part of speech (leftPOS)
`static String` `POSDICT_FILENAME_SUFFIX`
`static String` `POSDICT_HEADER`
`static String` `TARGETMAP_FILENAME_SUFFIX`
`static String` `TARGETMAP_HEADER`
`static int` `VERSION`

### Constructor Summary

Constructors
`protected` `BinaryDictionary()`
`protected` `BinaryDictionary(BinaryDictionary.ResourceScheme resourceScheme, String resourcePath)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static InputStream` `getClassResource(Class<?> clazz, String suffix)`
`int` `getLeftId(int wordId)` Get left id of specified word
`POS.Tag` `getLeftPOS(int wordId)` Get the left `POS.Tag` of specfied word.
`Dictionary.Morpheme[]` `getMorphemes(int wordId, char[] surfaceForm, int off, int len)` Get the morphemes of specified word (e.g.
`POS.Type` `getPOSType(int wordId)` Get the `POS.Type` of specified word (morpheme, compound, inflect or pre-analysis)
`String` `getReading(int wordId)` Get the reading of specified word (mainly used for Hanja to Hangul conversion).
`protected InputStream` `getResource(String suffix)`
`int` `getRightId(int wordId)` Get right id of specified word
`POS.Tag` `getRightPOS(int wordId)` Get the right `POS.Tag` of specfied word.
`int` `getWordCost(int wordId)` Get word cost of specified word
`void` `lookupWordIds(int sourceId, IntsRef ref)`

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

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

### Field Detail

#### TARGETMAP_FILENAME_SUFFIX

    public static final String TARGETMAP_FILENAME_SUFFIX

See Also:
  Constant Field Values

#### DICT_FILENAME_SUFFIX

    public static final String DICT_FILENAME_SUFFIX

See Also:
  Constant Field Values

#### POSDICT_FILENAME_SUFFIX

    public static final String POSDICT_FILENAME_SUFFIX

See Also:
  Constant Field Values

#### DICT_HEADER

    public static final String DICT_HEADER

See Also:
  Constant Field Values

#### TARGETMAP_HEADER

    public static final String TARGETMAP_HEADER

See Also:
  Constant Field Values

#### POSDICT_HEADER

    public static final String POSDICT_HEADER

See Also:
  Constant Field Values

#### VERSION

    public static final int VERSION

See Also:
  Constant Field Values

#### HAS_SINGLE_POS

    public static final int HAS_SINGLE_POS

flag that the entry has a single part of speech (leftPOS)

See Also:
  Constant Field Values

#### HAS_READING

    public static final int HAS_READING

flag that the entry has reading data. otherwise reading is surface form

See Also:
  Constant Field Values

### Constructor Detail

#### BinaryDictionary

    protected BinaryDictionary()
                        throws IOException

Throws:
  `IOException`

#### BinaryDictionary

    protected BinaryDictionary(BinaryDictionary.ResourceScheme resourceScheme,
                               String resourcePath)
                        throws IOException

Parameters:
  `resourceScheme` - - scheme for loading resources (FILE or CLASSPATH).
  `resourcePath` - - where to load resources (dictionaries) from. If null, with CLASSPATH scheme only, use this class's name as the path.
Throws:
  `IOException`

### Method Detail

#### getResource

    protected final InputStream getResource(String suffix)
                                     throws IOException

Throws:
  `IOException`

#### getClassResource

    public static final InputStream getClassResource(Class<?> clazz,
                                                     String suffix)
                                              throws IOException

Throws:
  `IOException`

#### lookupWordIds

    public void lookupWordIds(int sourceId,
                              IntsRef ref)

#### getLeftId

    public int getLeftId(int wordId)

Description copied from interface: `Dictionary`
Get left id of specified word

Specified by:
  `getLeftId` in interface `Dictionary`

#### getRightId

    public int getRightId(int wordId)

Description copied from interface: `Dictionary`
Get right id of specified word

Specified by:
  `getRightId` in interface `Dictionary`

#### getWordCost

    public int getWordCost(int wordId)

Description copied from interface: `Dictionary`
Get word cost of specified word

Specified by:
  `getWordCost` in interface `Dictionary`

#### getPOSType

    public POS.Type getPOSType(int wordId)

Description copied from interface: `Dictionary`
Get the `POS.Type` of specified word (morpheme, compound, inflect or pre-analysis)

Specified by:
  `getPOSType` in interface `Dictionary`

#### getLeftPOS

    public POS.Tag getLeftPOS(int wordId)

Description copied from interface: `Dictionary`
Get the left `POS.Tag` of specfied word. For `POS.Type.MORPHEME` and `POS.Type.COMPOUND` the left and right POS are the same.

Specified by:
  `getLeftPOS` in interface `Dictionary`

#### getRightPOS

    public POS.Tag getRightPOS(int wordId)

Description copied from interface: `Dictionary`
Get the right `POS.Tag` of specfied word. For `POS.Type.MORPHEME` and `POS.Type.COMPOUND` the left and right POS are the same.

Specified by:
  `getRightPOS` in interface `Dictionary`

#### getReading

    public String getReading(int wordId)

Description copied from interface: `Dictionary`
Get the reading of specified word (mainly used for Hanja to Hangul conversion).

Specified by:
  `getReading` in interface `Dictionary`

#### getMorphemes

    public Dictionary.Morpheme[] getMorphemes(int wordId,
                                              char[] surfaceForm,
                                              int off,
                                              int len)

Description copied from interface: `Dictionary`
Get the morphemes of specified word (e.g. 가깝으나: 가깝 + 으나).

Specified by:
  `getMorphemes` in interface `Dictionary`