|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : ’ а б®ў ‘ҐаЈҐ© 2:5020/400 01 Sep 2000 13:01:33 To : Alexander Bolotnov Subject : к вопросу об оправданности... -------------------------------------------------------------------------------- Thu Aug 31 2000 09:22, Alexander Bolotnov wrote to All: AB> All, AB> такое дело, вот почти от нечего делать сел писать поиск... вроде почти AB> написалось, по крайней мере рабочая моделька уже есть. Меня, значит, вот AB> что интересует: *как отдавать результаты*? AB> Да, поиск идет не в базе данных, а просто по файлам... Искать просто по файлам по моему вообще не стоит. Hу если там не более 100 файлов, тогда это еще может и пройдет, а если их больше (скажем 10000)? У меня сделано так: есть один файл, где собрана информация о всех файлах, в которых происходит поиск (т.е. URL, title, size, первые несколько байт и т.п.). Можно делать записи с фиксированной длиной или нет (у меня как раз длина не фиксирована), это не принципиально. В процессе поиска в качестве последнего результата я получаю массив чисел, которые являются смещениями от начала того файла, где записана информация о файлах (может быть номер записи, если длина фиксирована). Затем я просто беру первые N смещений, лезу туда, читаю записи и формирую ХТМЛ страницу. А внизу ставлю ссылки на последующие страницы, где в УРЛе указываю, с какой записи продолжать вывод. А затем два варианта: 1) Искать все заново и выдать пользователя следующие N записей. Поскольку у меня поиск происходит достаточно быстро (обычно сотые доли секунды), то пока все работает именно так. 2) Создать временный файп, в котором будет просто записан тот массив смещений, который я получаю в результате поиска, а в УРЛ добавить не только номер записи, с которой надо начать следующий вывод, но и имя временного файла. Затем скрипт смотрит, если при вызове ему передали имя файла, читает данные оттуда, если нет, ищет все с нуля. --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/166794b43713e.html, оценка из 5, голосов 10
|