Package Exports
- tree-autocomplete
Readme
tree
Управление префиксным деревом (tree) с поддержкой слов и фраз.
Описание
trie предоставляет API для работы с префиксным деревом, включая операции вставки, поиска, автодополнения и управления данными. Поддерживает как отдельные слова, так и целые фразы.
Функциональность
Операции со словами
- insertWord - добавление нового слова в дерево
- searchWord - проверка существования слова в дереве
- deleteWord - удаление слова из дерева
- autocompleteWords - получение списка слов по префиксу
Операции с фразами
- insertPhrase - добавление новой фразы в дерево
- searchPhrase - проверка существования фразы в дереве
- autocompletePhrases - получение списка фраз по префиксу
- deletePhrase - удаление фразы из дерева
Дополнительные операции
- checkPrefix - проверка наличия слов, начинающихся с заданного префикса
- getStats - получение статистики по дереву
- clearTrie - удаление всех данных из дерева
- loadFishingPhrases - предзагрузка специализированных фраз
Веб пример
Интерфейсы
InsertWord
interface InsertWord {
word: string;
}InsertPhrase
interface InsertPhrase {
phrase: string;
}SearchResponse
interface SearchResponse {
exists: boolean;
text: string;
}AutocompleteResponse
interface AutocompleteResponse {
prefix: string;
suggestions: string[];
count: number;
}Методы
insertWord(dto: InsertWord)
- Добавляет новое слово в префиксное дерево.
**Параметры:**
- `dto` - объект с полем `word`
**Возвращает:**
- `{ message: string }` - сообщение об успешном добавлении
**Исключения:**
- Выбрасывает ошибку при неудачной вставкеinsertPhrase(dto: InsertPhrase)
- Добавляет новую фразу в префиксное дерево.
**Параметры:**
- `dto` - объект с полем `phrase`
**Возвращает:**
- `{ message: string }` - сообщение об успешном добавлении
**Исключения:**
- Выбрасывает ошибку при неудачной вставкеsearchWord(word: string)
- Ищет слово в префиксном дереве.
**Параметры:**
- `word` - слово для поиска
**Возвращает:**
- `SearchResponseDto` - результат поискаsearchPhrase(phrase: string)
- Ищет фразу в префиксном дереве.
**Параметры:**
- `phrase` - фраза для поиска
**Возвращает:**
- `SearchResponseDto` - результат поискаautocompleteWords(prefix: string, limit?: number)
- Получает список слов, начинающихся с заданного префикса.
**Параметры:**
- `prefix` - префикс для поиска
- `limit` - максимальное количество результатов (по умолчанию 10)
**Возвращает:**
- `AutocompleteResponseDto` - список предложений
**Исключения:**
- Выбрасывает ошибку, если префикс не указанautocompletePhrases(prefix: string, limit?: number)
- Получает список фраз, начинающихся с заданного префикса.
**Параметры:**
- `prefix` - префикс для поиска
- `limit` - максимальное количество результатов (по умолчанию 10)
**Возвращает:**
- `AutocompleteResponseDto` - список предложений
**Исключения:**
- Выбрасывает ошибку, если префикс не указанcheckPrefix(prefix: string)
- Проверяет наличие слов, начинающихся с заданного префикса.
**Параметры:**
- `prefix` - префикс для проверки
**Возвращает:**
- `{ hasWords: boolean }` - результат проверкиdeleteWord(word: string)
- Удаляет слово из префиксного дерева.
**Параметры:**
- `word` - слово для удаления
**Возвращает:**
- `{ message: string }` - сообщение об успешном удалении
**Исключения:**
- Выбрасывает ошибку, если слово не найденоgetStats()
- Получает статистику по префиксному дереву.
**Возвращает:**
- Объект со статистикойclearTrie()
- Очищает все данные из префиксного дерева.
**Возвращает:**
- `{ message: string }` - сообщение об успешной очисткеloadFishingPhrases()
- Загружает предустановленные рыболовные фразы в дерево.
**Возвращает:**
- `{ message: string; loaded: number }` - сообщение и количество загруженных фразОбработка ошибок
- tree включает обработку ошибок для всех операций. При возникновении ошибки выбрасывается исключение с описательным сообщением на русском языке.
Использование
import { tree } from 'tree-autocomplete"';
// Добавление слова
tree.insertWord({ word: "привет" });
// Поиск слова
const result = tree.searchWord("привет");
// Автодополнение
const suggestions = tree.autocompleteWords("прив", 5);
// Получение статистики
const stats = tree.getStats();Примечания
- Поддерживается работа как с отдельными словами, так и с целыми фразами
- Методы автодополнения имеют ограничение по умолчанию в 10 результатов