Package org.apache.lucene.search.suggest

# Class FileDictionary

java.lang.Object
org.apache.lucene.search.suggest.FileDictionary

All Implemented Interfaces:
  `Dictionary`

public class FileDictionary extends Object implements Dictionary
Dictionary represented by a text file.

Format allowed: 1 entry per line:
An entry can be:

- suggestion
- suggestion `fieldDelimiter` weight
- suggestion `fieldDelimiter` weight `fieldDelimiter` payload

where the default `fieldDelimiter` is "\t"

NOTE:

- In order to have payload enabled, the first entry has to have a payload
- If the weight for an entry is not specified then a value of 1 is used
- A payload cannot be specified without having the weight specified for an entry
- If the payload for an entry is not specified (assuming payload is enabled) then an empty payload is returned
- An entry cannot have more than two `fieldDelimiter`

Example:
word1 word2 TAB 100 TAB payload1
word3 TAB 101
word4 word3 TAB 102

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_FIELD_DELIMITER`
  Tab-delimited fields are most common thus the default, but one can override this via the constructor

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FileDictionary(InputStream dictFile)`
  Creates a dictionary based on an inputstream.
  `FileDictionary(InputStream dictFile, String fieldDelimiter)`
  Creates a dictionary based on an inputstream.
  `FileDictionary(Reader reader)`
  Creates a dictionary based on a reader.
  `FileDictionary(Reader reader, String fieldDelimiter)`
  Creates a dictionary based on a reader.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `InputIterator`
  `getEntryIterator()`
  Returns an iterator over all the entries

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

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

- ## Field Details

  - ### DEFAULT_FIELD_DELIMITER

    public static final String DEFAULT_FIELD_DELIMITER
    Tab-delimited fields are most common thus the default, but one can override this via the constructor
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### FileDictionary

    public FileDictionary(InputStream dictFile)
    Creates a dictionary based on an inputstream. Using `DEFAULT_FIELD_DELIMITER` as the field separator in a line.

    NOTE: content is treated as UTF-8

  - ### FileDictionary

    public FileDictionary(Reader reader)
    Creates a dictionary based on a reader. Using `DEFAULT_FIELD_DELIMITER` as the field separator in a line.

  - ### FileDictionary

    public FileDictionary(Reader reader, String fieldDelimiter)
    Creates a dictionary based on a reader. Using `fieldDelimiter` to separate out the fields in a line.

  - ### FileDictionary

    public FileDictionary(InputStream dictFile, String fieldDelimiter)
    Creates a dictionary based on an inputstream. Using `fieldDelimiter` to separate out the fields in a line.

    NOTE: content is treated as UTF-8

- ## Method Details

  - ### getEntryIterator

    public InputIterator getEntryIterator()
    Description copied from interface: `Dictionary`
    Returns an iterator over all the entries
    Specified by:
      `getEntryIterator` in interface `Dictionary`
    Returns:
      Iterator