SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.04.2009 14:52:05

Innuendo
Участник
Зарегистрирован: 27.02.2008
Сообщений: 5

Нестрогий поиск по базе

Доброго времени суток!
Скажите, как возможно реализовать поиск слов с различием по значению в один символ от заданного слова? Вот пример
http://www.abbyyonline.ru/translate.asp … 0%BC%D0%BE
Введено "мамо", нашлось 4 похожих слова с разницей в одну букву.
Думал как реализовать через регуляры, но ничего не пришло в голову...

Неактивен

 

#2 30.04.2009 15:26:07

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Нестрогий поиск по базе

Вообще, есть специальные алгоритмы для таких действий
http://dev.mysql.com/doc/refman/5.1/en/ … on_soundex

К сожалению, soundex не справляется с русскими словами. Однако, никто не мешает Вам написать
сторонний алгоритм, который считает правильный хэш русских слов и строить такой своеобразный
«индекс похожих слов», а потом по нему искать.

Если волнует именно упрощенный алгоритм «в одну букву», то просто нужно сделать запрос через
LIKE: WHERE word LIKE ('_амо') OR word LIKE ('м_мо') OR ... Разумеется, он не будет использовать
индексы.

Неактивен

 

#3 30.04.2009 16:10:06

Innuendo
Участник
Зарегистрирован: 27.02.2008
Сообщений: 5

Re: Нестрогий поиск по базе

paulus, спасибо вам большое за ответ

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson