
alammi писал(а):Вопрос древний, как сама вселенная: как осуществлять нечеткий поиск в бд? Желательно конкретные предложения, а не философские трудыБаза большая (~20 полей по 15000 записей), а поиск тормозить не должен-max 30 секунд! Поделитесь идеями-буду признателен
alammi писал(а):Сделано в Access, а доступ я делаю через SQL-запросы. ПОМОГИТЕ КТО-НИБУДЬ!!! (Крик души)
То что касается похорон Access, это еще ладно. Как я прочитал в подписях у кого-то на этом форуме: "Критикуешь - предлагай". Я уже вешаться хочу от всего этого бреда.codemaster писал(а):alammi писал(а):Сделано в Access, а доступ я делаю через SQL-запросы. ПОМОГИТЕ КТО-НИБУДЬ!!! (Крик души)
Думаю идею с Accessом в качестве БД можно смело похронить
что касается
"Approximate string matching" линков в инете ВАГОН
как вариант
http://www.codeproject.com/string/dmetaphone6.asp
alammi писал(а):То что касается похорон Access, это еще ладно. Как я прочитал в подписях у кого-то на этом форуме: "Критикуешь - предлагай". Я уже вешаться хочу от всего этого бреда.
Вот.
codemaster писал(а):Перейди на MS SQL сервер.
Как вариант линк тебе уже дал - достаточно интересное решение
которое вполне можно доработать под MSSQL.
SELECT GOODS.NAME
FROM GOODS
WHERE (((GOODS.NAME) Like "*ТЕКСТ*"))
WITH OWNERACCESS OPTION;
MOV писал(а):А что мешает сделать на крайняк обычный запрос в
...
таблиц в запросе. Или примерно хотя бы суть запроса.![]()
Возможно, тебе надо просто оптимизировать базу (то бишь перекроить немного).
перейти на MSDE -- по функционалу практически MSSQL, только работает на локальной машине. Зато бесплатный.
2) Ребятки я же сказал, только отличие на 1, максимум 2 буквы, а то что это за нечеткий поиск: Задал слово "412", а получил "12423412344122345345". Не-е-е- так не пойдет
Recordset таблички которая у него в MDB и пробежаться по нему с готовой функцией на VB отобрав нужные записи. Вот только опыта у него нет как все это сделать...
alibek писал(а):
Можно (чтобы остаться чистым душой и непорочным) перейти на MSDE -- по функционалу практически MSSQL, только работает на локальной машине. Зато бесплатный.
Да нахрена ему эта функция, если это может сделать SQL?
А если таблица на серваке и все начнут по ней бегать?
Соревнование будет долгим . Хотя согласен, все равно рекордсет нужен но с SQL и выброси свою функцию
ставить MSSQL сервер - ну не маразм ли?
Во-первых таких табличек может быть пару сотен (как понял, база весит до 2Gb ).
Короче или ты меня не понял или путаешь название СУБД и название языка .
Andrey Fedorov писал(а):См. выше - SQL-сервер это не всегда выигрышь - а в данном случае он просто не нужен.
Он нужен без него не работает MSSearch !
Andrey Fedorov писал(а):Он нужен без него не работает MSSearch !
Допустим вам продают маленькую программку - нечто вроде записной книжки, в которой 15000 записей (как у автора вопроса).
(мы ведь не знаем что он в итоге делает, согласись).
как осуществлять нечеткий поиск в бд? База большая (~20 полей по 15000 записей), а поиск тормозить не должен-max 30 секунд!
Andrey Fedorov пример работает медленно
Сейчас этот форум просматривают: PetalBot и гости: 23