Вопросы об организаци поиска

12
K
На сайте с 11.11.2005
Offline
12
#11
Eugen:
Очень благодарен вам за ответ, на самом деле мне просто необходимо понять насколько мои идеи адекватны тому, что существует на сегодяншний день.

Что существует понять несложно: объем базы - миллиарды документов с преспективой роста, время сложного поиска - в районе секунды, не больше, дополнительные бантики - у каждого свои, но есть и общие.

Т.е. в Вашем случае следует прежде всего приступить к постановке задачи - что должно получиться на выходе, какими свойствами обладать, что подается на вход и т.д. Потом поисследовать на практике аналоги, скорректировать постановку задачи...

Eugen:
Цель - исключительно образовательная. Ничего коммерческого. Поиск подразумевается делать по неструктурировнным документам. Насчет супер-пуппер - не знаю, это уже как оплучится ;).

Самообразование, или пытаться устроиться в реально работающую над подобными проблемами контору (маловероятно, но возможно, если покажете подготовленную базу и пр.) Понимаете, над этим работают коммерческие команды, и давно работают. Вероятность того, что ваши мысли самые прогрессивные есть, не стоит и такой шанс сбрасывать со счетов.

Eugen:
Да но как тогда быть с шумовыми стоп-словами? Ведь они в индексе отсутствуют и соответсвенно запрос "Петя и Вася" не может быть выполнен в силу отсутствия "и" в индексе. Выход - индексировать все слова, включая стоп-слова?.

Именно так :) Однако если запрос без "кавычек" или еще какой-то другой - просто проигнорировать. Я вам больше скажу - запрос: user@domain должен восприниматься как одно слово, зачем мне документы, в которых есть user и domain, но в разных местах?

Eugen:
Я задумывался над этим и вряд ли возможным будет хранение всего разнообразия лексем в ОЗУ, т.к. тут будут и числа и разнообразные сокращения, аббревиатуры и проч, как вы правильно написали..

Кто сказал, что они войдут в память. Даже если допустить, что все документы состоят из "словарных" слов (пардон за каламбур), то как быть с другими языками (китайский, например 🚬 ), а с их морфологией? Просто присвоение уникальных ID для слов или их основ может сократить расход пространства хранилища (диска, например) для общего индекса. Предположим, что средняя длина слова 8 символов, предположим, что всего слов вместе с иероглифами будет не более 2 млрд. Тогда каждое слово можно представить 32 разрядами (4 символа). Подход упрощенный, но мысль, думаю, понятна.

Eugen:
Полное перестроение - это совсем "больно", т.к. лучше уже пользоваться прямым индексом. Т.е хранить оба: прямой и обратный. Прямой позволит определить термины, по которым надо произвести зачистку пост-листа, чтобы удалить документ подлежащий переиндексации.
Но вряд ли это самый лучший способ. Возможно вы сможете посоветовать, где прочитать о лучших? Информационный поиск имеет долгую истории развития и прежде всего развития в плане научных изысканий, а посему существует много публикаций на тему. Я ведь спрашиваю о достаточно базовых вещях, которые вряд ли уж настолько ноу-хау ;).

Ну краулеры могут помечать, что был отсканирован документ с ID таким-то. На этапе слияния индекса с новой порцией в каждой итерации следует вычищать поднятые данные на предмет ID и сопутствующей ему информации. Это тоже упрощенно, не гарантирует, что вычистите все

Желаю удачи

Если вы будете следовать инструкциям, то каждое блюдо будет получаться у вас таким же, как и у нас, даже если раньше вы никогда не занимались приготовлением пищи. Поваренная книга Мак-Колла и эпиграф Д. Кнута (http://www.turtle.ru/)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий