JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q37755F
  • License MIT

Реализация префиксного дерева для автозаполнения с поддержкой слов и фраз

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 результатов