Forum Webscript.Ru

Программирование => Perl => Тема начата: kosm от 22 Августа 2003, 14:31:37

Название: DBI: Быстрый поиск по результатам запроса
Отправлено: kosm от 22 Августа 2003, 14:31:37
Отцы, братья! Помогите плиз советом/идеей, как прошерстить БД по одному полю?
Задача в следующем.
1.Есть некий список (строки) в массиве, порядка 2000 записей.
2.Есть таблица на mysql, тоже со списком строк, порядка 20000 записей.
3.Есть ф-ция на перле которая сравнивает две строки.

Как найти строки в БД сверенные по моей ф-ции?

Какие есть варианты?
1.Формировать запрос к БД по каждой записи массива(1)?
2.Загонять через DBI данные таблицы БД в массив и там шерстить?

Что посоветуете?

СПАСИБО!
Название: DBI: Быстрый поиск по результатам запроса
Отправлено: NeoNox от 22 Августа 2003, 14:57:13
Все зависит от того что тебе далее нужно будет с ними делать.
Но второй вариант выглядит повкуснее. Явно повкуснее...
Название: DBI: Быстрый поиск по результатам запроса
Отправлено: Макс от 22 Августа 2003, 15:02:44
kosm
а ты уверен, что это сравнение (которое делает перл-функция) нельзя реализовать через SQL-операторы ?
Название: DBI: Быстрый поиск по результатам запроса
Отправлено: NeoNox от 22 Августа 2003, 15:11:49
Макс
Думаю что да : http://forums.webscript.ru/showthread.php?s=&threadid=13413&msgnum=4
Хотя, пусть ответчик подойдет...
Название: DBI: Быстрый поиск по результатам запроса
Отправлено: kosm от 22 Августа 2003, 15:19:53
NeoNox
Найденные значения нужно будет проапдейтить в БД, вернее другое поле той же записи. Поэтому в массиве будут значения поля ID.
С массивом мне тоже как-то больше по-душе. Единственное смущает объем и сам процесс поиска в массиве. Объем 20000 записей в памяти не многовато? А с поиском вообще не понятно. Чисто перебором искать?

Макс
Смысл моей ф-ции в том, чтобы сравнить два предложения, при чем порядок слов и знаки припинания не беруться в учет.
Т.е.: МАША ЕЛА КАШУ! == МАШКА ЕЛА КАШКУ == ЕЛА КАШУ - МАША будет считаться идентичными предложениями. Такое навряд ли возможно реализовать чисто на sql :( К тому же тут еще и кириллица.
Если такое возможно - давай, излагай. Рассматриваю все варианты.
Останется самый быстрый.
Название: DBI: Быстрый поиск по результатам запроса
Отправлено: kosm от 22 Августа 2003, 15:27:11
NeoNox
Точно, я это был :)) Спасибо! Твоя идея с хешами + soundex вроде как решили мою задачу. Ф-ция работает. Но теперь надо ведь ее на 2000 записей (массив) против 20000 (БД) натравить.
Думаешь можно реализовать алгоритм ф-ции на SQL?

PS: Могу привести текст ф-ции, если действительно это реально на SQL перенести.

СПАСИБО ЗА ПОМОЩЬ! ОЧЕНЬ ВЫРУЧАЕТЕ!