TGViewer
SQLite на практике SQLite на практике @sqliter · 2.25K subscribers
Post #54 2.48K
Быстрый поиск похожих слов на SQL
(готовое решение)

Я что-то закопался с подробной статьей про поиск похожих слов, так что вот пока готовое решение на SQLite.

Напомню, что задача в общем виде такая:

— Человек ввел произвольное слово.
— Мы хотим найти наиболее похожее слово из готового словаря.
— И сделать это быстро.

Полный перебор по словарю работает хорошо, но медленно.

Чтобы сделать быстро, понадобится расширение spellfix.

Подключаем расширение:

.load ./spellfix


Создаем таблицу для словаря:

create virtual table dictionary using spellfix1;


Загружаем в нее данные:

insert into dictionary(word)
select ... from ...;


И ищем похожие слова:

select word
from dictionary
where word match ?
limit 1


Например:

sqlite> select word from dictionary where word match 'абривиатура' limit 1;
аббревиатура


sqlite> select word from dictionary where word match 'рассчет' limit 1;
расчет


sqlite> select word from dictionary where word match 'дорга' limit 1;
дорога


Изи!

Позже отдельно распишу, как и почему все работает. И как сделать самостоятельно на любой базе.
  • 👍 1
More from @sqliter
  1. May 20, 2025fuzzy: Нечеткое сравнение строк в SQLite Расширение nalgeon/fuzzy помогает сравнивать стро…
  2. May 14, 2025fileio: Работа с файлами в SQLite Расширение nalgeon/fileio добавляет в SQLite возможность…
  3. May 10, 2025define: Пользовательские функции в SQLite Как известно, в SQLite нет хранимых процедур. Пр…
  4. May 7, 2025crypto: Хеши, кодирование и декодирование в SQLite Открываю новую серию заметок. В каждом…
  5. Aug 8, 2024Работа с датой и временем в SQLite В sqlite есть встроенные функции для работы с датами, н…
  6. May 8, 2024Современный SQLite: Вычисляемые столбцы Вычисляемые (generated) столбцы рассчитываются на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →