Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
14-1078924320
zx
2004-03-10 16:12
2004.04.04
Если бы при приеме на работу ...


11-1058212418
Maxim Pushkar
2003-07-14 23:53
2004.04.04
Как можно в KOLListBox и KOLComboBox добавить картинки?


1-1079197102
Kuzmich
2004-03-13 19:58
2004.04.04
Обработка нажатия левой и правой кнопки одновременно


3-1078414564
ceval
2004-03-04 18:36
2004.04.04
отображения хода открытия сделал Animate


14-1078689202
Seriouss
2004-03-07 22:53
2004.04.04
Новый портал о железе! оцените?