LINUX.ORG.RU

Full Text Search

 


0

1

Есть самодельная кривая NoSQL СУБД на C++, в которую валится много сообщений юзеров и из которой юзеры смотрят последние сообщения. Ну типа, зашёл в чатик и мотаешь наверх до бесконечности, читаешь что там понаписали. Или в режим форума переключился и листаешь страницами.

Хочется немного поиска вхрячить. Добавить инвертированный индекс (слово->документ) я конечно могу и по одному вбитому слову через AJAX сразу показывать варианты продолжения этой строки как в гугле и быстро находить документы.

А хочется с расстоянием левенштейна замутить телегу. Ну, чтобы юзер вбил «сбк» и я показал «сбербанк» или «собв» -> «сабвей» или «собк» -> «собака». Тут ещё ранжирование по весу слов участвует, но это ладно.

Не будешь же считать левенштейна на лету, словарь ведь придётся мутить, рассчитывая его заранее? Ну т.е. статически мапить «сбк» на некоторое множество слов с весами, которые по ходу меняются. Или что-то есть хитрое динамическое?

Морфология - пока фтопку, и так жизнь тяжёлая.

Посоветуйте сотни PDF-публикаций, которые надо раскуривать.

Взять готовое не предлагать - тут цель понять и разобраться, а не сделать продукт минимумом усилий, усилия рулят.

Full Text Search != Fuzzy Search

вбил «сбк» и я показал «сбербанк» или «собв» -> «сабвей» или «собк» -> «собака»

Что-нибудь soundex-образное? Не знаю, что там для русского языка есть, правда.

Ну и кэшировать, кэшировать, кэшировать.

buddhist ★★★★★ ()
Последнее исправление: buddhist (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.