Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизFull-text search Найти похожие ветки
← →
Dimedrol © (2004-03-05 00:29) [0]Коллеги, вот приспичило мне подумать над сабжем
"в свете" FireBird-a...
Назревает проект, в котором будет использоваться FB
база, и неплохо бы организовать полнотекстовый поиск
по текстовой информации там.
Подозреваю, что это непростая задача,
а посему - прошу совета:
не подскажет ли кто, как можно организовать
несложную систему полнотекстового поиска по базе ?
Ну, вот как например это реализовали (наконец-то!)
в MySQL, или что-то подобное.
В Сети встречал немало ссылок на ресурсы,
но, вот, что-то вроде - "как организовать
полнотекстовый поиск для чайников", не встречал.
Да и вообще, в основном натыкался или на обсуждение
MySQL-овского варианта, либо еще на что-то не то.
Никто не сталкивался ?
Подскажите плиз, куда копать ? С чего начать ?
← →
Dimedrol © (2004-03-05 09:03) [1]Что прямо вот никто не сталкивался... ? :-(
← →
Digitman © (2004-03-05 09:11) [2]что подразумевается под "полнотекстовым поиском" ?
← →
Sergey_Masloff (2004-03-05 09:23) [3]>С чего начать ?
1) С выбора средств адекватных задаче
2) Если уж приспичило именно FB то реализуй руками. Парси руками BLOB на словоформы, строй по ним индексы и ищи по индексной таблице. Конечно пару книжек прочитать придется но вобщем-то военного ничего нет.
Поясню свою мысль - у тебя появляется таблица из пары столбцов - строка и ссылка на таблицу с информацией. Допустим у тебя аннотация к книжке:
"в этой книге приводится справочный материал по языку SQL, чтавшему промышленным стандартом интерфейса реляционных баз данных..."
Записана в BLOB в таблице TABLE1 в кортеже с идентификатором ID = 12345.
Твоя задача построить таблицу ссылок TABLE2
INDEX_STR TABLE1_REF
"книга" 12345
"справочный" 12345
"материал" 12345
"стандарт" 12345
"базы данных"12345
и так далее
Ну и потом отбирай нужные записи по наибольшему числу соответствий. Проблема в том как разобрать текст на словоформы - это уже наука в двух словах не рассказать. Читай умные книги.
← →
Dimedrol © (2004-03-05 09:40) [4]2 Sergey_Masloff
Ага...
Ну, кстати, я и подозревал, что так оно и будет.
То есть, это и есть реализация полнотекстового поиска. ;-)
У нас в ооочень древнем проекте такая штука уже есть.
В принципе организовать его таким образом мне вполне по силам.
На счет словоформ, нууу...
в принципе у меня уже есть отписанный мною же алгоритм,
который составляет из текста уникальные слова и подсчитывает их
кол-во повторений. (На бинарном делеве основан)
2 Digitman
Дааа... вопрос конечно интересный ;-)
Даже растерялся немного ;-))
В принципе мне просто нужен механизм быстрого поиска
слов в тексте, или строке в базе данных.
Я слышал, что поиск where field1 like "%aaaa%"
не самый быстрый из возможных,
и поэтому производители СУБД начали
излогятся и придумывать различные фичи,
как-то "полнотекстовый поиск".
То есть это "алгоритм+иструмент" для обеспечения
более быстрого поиска текстовой информации.
Наверное наиболее понятно ;-) он реализован в последних версиях
MySQL-а.
Там при создании таблицы нужно указать
по каким полям строиться полнотекстовый индекс.
И потом если искать по этим полям с особым Sql синтаксисом,
то процесс поиска занимает куда более короткое время,
нежели поиск LIKE-ом.
Он описан тут:
http://www.mysql.com/doc/en/Fulltext_Search.html
То есть мне не нужны приблуды для поисковиков.
пока я копал инфу по этому вопросу,
нашел кучу разных ресурсов про downloadable поисковые
движки, в основном платные, которые, мол,
"нам помогут".
Но, подозреваю что там наворочена куча различных наворотов,
типа StopWord и т.п. которые скорее всего мне
не понадобяться.
Вот я и занялся поиском чего-нибудь более "легковесного"
и легкого в реализации.
Ну...
Что посоветуете ?
← →
Digitman © (2004-03-05 09:51) [5]
> Что посоветуете ?
посоветую UDF
алгоритм сканирования содержимого полей записи в UDF будет тебе полностью подконтролен, и при грамотной оптимизации кода в любом случае это будет работать быстрее LIKE
← →
Dimedrol © (2004-03-05 12:48) [6]Мда.
Это может быть вариантом.
А то, что предложил ув. "Sergey_Masloff" ?
Что ты думаешь об этом ?
← →
Карелин Артем © (2004-03-05 12:55) [7]Справочник слов завести. И ссылки на источник.
← →
Dimedrol © (2004-03-05 13:39) [8]2 Карелин Артем ©
Ну это ведь, как я понимаю, то же что говорил "Sergey_Masloff" ?
Так ведь ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c