Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Timur Sabirzyanov                    2:5080/197.197 14 Nov 2000  03:15:39
 To : All
 Subject : search по уму NEED!
 -------------------------------------------------------------------------------- 
 
 
 наваял тут скриптик. учитывая мои поверхностные знания эхотага - маразмов не
 счесть. поэтому большая просьба - исправьте глупости если не лень.
 
 ЗЫ! А ведь почти наверняка я изобретаю велосипед! Причем пятиколесный... Hе
 сочтите за труд кинуть мне нетмылом нормальный искатель.
 
 ЗЫ2! А можно чтоб сие не ругалось при запуске с ключем -w ?
 
 #!perl
 
 #search engine
 
 #запрос - несколько слов через пробелы. типа "driver for modem" найдет
 #первый и второй документы
 
 #индексный файл представляет собой такую ботву:
 #hardware.txt|modem|ats|port|isa|pci|lpt|cable|transistor
 #software.txt|util|driver|patch|graphics|word 97|windows 95
 
 #filename.ext|keyword1|keyword2|keyword3|...|keywordN
 
 use CGI;
 
 $cgi = new CGI;
 
 print $cgi->header(-type => 'text/html; charset=Windows1251');
 print $cgi->start_html(-title => 'Document Searcher');
 
 open ind,"<search.index" || die "$!";
 while(<ind>) {
   chomp;
   push @fullindex,$_;
 }
 close ind;
 
 @search = split (/\s+/,$cgi->param('ss'));
 
 foreach $keyword (@search) {
   foreach $str (@fullindex) {
     if ($str =~ /$keyword/) {
       ($a,)=split(/\|/,$str);
       push @found, $a;
     }
   }
 }
 
 %seen = ();
 foreach $item (@found) {
   if (exists $seen{$item}) {
     $seen{$item}++;
   }
   else {
     $seen{$item}=1;
   }
 }
 
 @found=();
 
 foreach $item (sort { $seen{$a} cmp $seen{$b} } keys %seen) {
   push @found, $item;
 }
 
 @a = reverse @found;
 
 foreach (@a) {
   print "<a href=\"$_\">$_</a><br>";
 }
 
 print $cgi->end_html;
 
 *Особенно последнее надо переделать. чтоб те ссылки которые в результате*
 *поиска упоминаются чаще, шли первыми. Оно работает, но реализация - мерзость*
 
                                                             WBR, Tim.
 ... Люблю, когда пиво правильное, вот водка - правильное пиво!
 --- [ Teams: RammsЕein | M.Manson | KMFDM | C/C++ | Perl | 3DMAX | TSL ]
  * Origin: All lies lead to the truth (2:5080/197.197)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 search по уму NEED!   Timur Sabirzyanov   14 Nov 2000 03:15:39 
Архивное /ru.perl/47463a105c43.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional