[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Анонс: легковесная система полнотекстового поиска



Hello!

On Friday 05 February 2010 18:47:19 Serhiy Storchaka wrote:
> > On Friday 05 February 2010 18:13:24 Serhiy Storchaka wrote:
> >> Можно проверять дату последней модификации файла до вычисления хэша и
> >> определения типа mime. Это значительно ускорит повторное сканирование.
> > 
> > Проверка по mtime имхо совершенно ненадежна, предпочитаю по хэшу.
> 
> Можно ещё размер проверять (всё равно хранится). Или, для параноиков,
> idev:inode.

А вот это не годится. Данные могут быть перемещены на другой диск или даже на
другой компьютер, это не повод их переиндексировать.
 
> >> И разве в tcllib нет реализации md5, что дёргается внешний бинарник?
> > 
> > Покамест tcllib не использую, ради md5 не хочется лишнюю зависимость
> > тянуть. А так в моей сборке sqlite есть функция вычисления md5 для файла,
> > но это не всем удобно будет.
> 
> Ещё меня удивляет, зачем там утилиты на C. Ведь на том же тикле можно
> записать проще и понятнее.

Можно, только время запуска тиклевого интерпретатора на порядок больше. И если
логика индексации достаточна сложная и требует времени, то поиск должен быть
максимально ускорен. Раньше у меня в веб-портал была встроена работа с БД
поискового индекса, а теперь использую вызов внешних утилит - на коре квадро
порядка 1000 поисковых запросов в секунду отрабатывает, что значительно 
превышает мои потребности (насколько помню, у яху пиковая нагрузка несколько лет
назад составляла около 15 000 запросов в секунду).

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

Best regards, Alexey Pechnikov.
http://pechnikov.tel/

Reply to: