WordDict3
Manage and use an inverted index dictionary.
Usage
#include <mifluz.h>WordList* words = ...;WordDict* dict = words->Dict();
Overview
WordDict maps strings to unique identifiers and frequency in the inverted index. Whenever a new word is found, the WordDict class can be asked to assign it a serial number. When doing so, an entry is created in the dictionary with a frequency of zero. The application may then increment or decrement the frequency to reflect the inverted index content.
The serial numbers range from 1 to 2^32 inclusive.
A WordDict object is automatically created by the WordList object and should not be created directly by the application.
Methods
WordDict()-
Private constructor.
- int Initialize(WordList* words)
-
Bind the object a WordList inverted index. Return OK on success, NOTOK otherwise.
- int Open()
-
Open the underlying Berkeley DB sub-database. The enclosing file is given by the words data member. Return OK on success, NOTOK otherwise.
- int Remove()
-
Destroy the underlying Berkeley DB sub-database. Return OK on success, NOTOK otherwise.
- int Close()
-
Close the underlying Berkeley DB sub-database. Return OK on success, NOTOK otherwise.
- int Serial(const String& word, unsigned int& serial)
-
If the
wordargument exists in the dictionnary, return its serial number in theserialargument. If it does not already exists, assign it a serial number, create an entry with a frequency of zero and return the new serial in theserialargument. Return OK on success, NOTOK otherwise.
- int SerialExists(const String& word, unsigned int& serial)
-
If the
wordargument exists in the dictionnary, return its serial number in theserialargument. If it does not exists set theserialargument to WORD_DICT_SERIAL_INVALID. Return OK on success, NOTOK otherwise.
- int SerialRef(const String& word, unsigned int& serial)
-
Short hand for Serial() followed by Ref(). Return OK on success, NOTOK otherwise.
- int Noccurrence(const String& word, unsigned int& noccurrence) const
-
Return the frequency of the
wordargument in thenoccurrenceargument. Return OK on success, NOTOK otherwise.
- int Normalize(String& word) const
-
Short hand for words->GetContext()->GetType()->Normalize(word). Return OK on success, NOTOK otherwise.
- int Ref(const String& word)
-
Short hand for Incr(word, 1)
- int Incr(const String& word, unsigned int incr)
-
Add
incrto the frequency of thewordReturn OK on success, NOTOK otherwise.
- int Unref(const String& word)
-
Short hand for Decr(word, 1)
- int Decr(const String& word, unsigned int decr)
-
Subtract
decrto the frequency of thewordthe frequency becomes lower or equal to zero, remove the entry from the dictionnary and lose the association between the word and its serial number. Return OK on success, NOTOK otherwise.
- int Put(const String& word, unsigned int noccurrence)
-
Set the frequency of
wordwith the value of thenoccurrenceargument.
- int Exists(const String& word) const
-
Return true if
wordexists in the dictionnary, false otherwise.
- List* Words() const
-
Return a pointer to the associated WordList object.
- WordDictCursor* Cursor() const
-
Return a cursor to sequentially walk the dictionnary using the
Nextmethod.
- int Next(WordDictCursor* cursor, String& word, WordDictRecord& record)
-
Return the next entry in the dictionnary. The
cursorargument must have been created using the Cursor method. The word is returned in thewordargument and the record is returned in therecordargument. On success the function returns 0, at the end of the dictionnary it returns DB_NOTFOUND. Thecursorargument is deallocated when the function hits the end of the dictionnary or an error occurs.
- WordDictCursor* CursorPrefix(const String& prefix) const
-
Return a cursor to sequentially walk the entries of the dictionnary that start with the
prefixargument, using theNextPrefixmethod.
- int NextPrefix(WordDictCursor* cursor, String& word, WordDictRecord& record)
-
Return the next prefix from the dictionnary. The
cursorargument must have been created using the CursorPrefix method. The word is returned in thewordargument and the record is returned in therecordargument. Thewordis guaranteed to start with the prefix specified to theCursorPrefixmethod. On success the function returns 0, at the end of the dictionnary it returns DB_NOTFOUND. Thecursorargument is deallocated when the function hits the end of the dictionnary or an error occurs.
- int Write(FILE* f)
-
Dump the complete dictionary in the file descriptor
f.The format of the dictionary is word serial frequency , one by line.
Releases
2 releases since Debian 3.0 (Woody); the text changed 1 time.