int sol_ListEntries( HGREN hEngine, int Flags, int EntryType, const wchar_t * EntryNameMask, int LanguageID, int PartOfSpeechID )
int sol_ListEntries8( HGREN hEngine, int Flags, int EntryType, const char * EntryNameMaskUtf8, int LanguageID, int PartOfSpeechID )
Аргументы:
hEngine - дескриптор экземпляра грамматического словаря.
Flags - управление алгоритмом поиска, 0x00000000 - поиск по регулярному выражению с точным соответствием регистра, 0x00000001 - поиск по регулярному выражению без учета регистра, 0x00010000 - поиск словарных статей с заданным именем без учета регистра.
EntryType - 0 для словарных статей, 1 для фразовых статей.
EntryNameMask - наименование словарной статьи, текст фразовой статьи, либо регулярное выражение для сопоставления с именем.
LanguageID - ID языка, можно задать -1.
PartOfSpeechID - ID части речи, можно указать -1, чтобы фильтрация по части речи не выполнялась.
Возвращает:
Дескриптор списка первичных ключей найденных статей.
Функции sol_ListEntries и sol_ListEntries8 отличаются текстовой кодировкой, в которой задано название статьи. Функция с суффиксом 8 получает строку в кодировке utf-8.
Для получения дескриптора грамматического словаря можно воспользоваться функциями sol_CreateGrammarEngine и sol_LoadDictionary[A,W,8].
Для работы со списком ID, дескриптор которого вернула вышеописанная функция, следует использовать функции sol_CountInts, sol_GetInt и sol_DeleteInts. Зная ключ словарной или фразовой статьи, можно определять её свойства, такие как принадлежность к части речи, грамматический род, глагольный вид и так далее, с помощью соответствующих функций: sol_GetEntryClass, sol_GetEntryCoordState, sol_GetEntryName и др.
Значения ID в возвращаемом списке однозначно соответствуют первичному ключу записей в таблице SG_ENTRY или SG_TENTRY, согласно выбранному типу статей. Благодаря этому серверный вариант API можно использовать вместе с SQL запросами к базе данных словаря.
Для поиска словарных и фразовых статей в лексиконе есть и другие функции, реализующие разные подходы. В частности, поиск единственной словарной статьи по её имени и ID части речи можно сделать с помощью функции sol_FindEntry. Поиск фразовой статьи по ее тексту - функцией sol_FindPhrase. А поиск словарных статей, содержащих заданную грамматическую форму, можно выполнить через sol_ProjectWord.
Пример на C++:
#include "solarix_grammar_engine.h"
// ...
HGREN_INTARRAY hlist = sol_ListEntries8( hEngine, 0x00010000, 0, "сходить", -1, -1 );
int n = sol_CountInts(hlist);
for( int i=0; i<n; ++i )
{
int entry_id = sol_GetInt( hlist, i );
// ...
}
sol_DeleteInts(hlist);
Приобретение SDK грамматического словаря
API layer C++ source code: grammar_engine_api.cpp
Вернуться к списку функций API
© Elijah Koziev 2010
Поисковая система
SDK Поисковой системы
Экранный переводчик
|
|
изменено 23-Aug-11 | ||||||||||||||||||||||||||||||||||||||