Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

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

[apache-rus] Re: [apache-talk] поиск по WWW



Alex Tutubalin wrote:
> 
> Привет еще раз
> 
> Сразу для начала дискуссии :). Есть такая искалка - ht/dig.
> Я знаю, что для ее нормальной работы нужно какое-то количество патчей
> (выдача русских букв в ссылках в plaintext и подобное). Может ли
> кто-то поделиться патчами для версии htdig-3.1.0b1.tar.gz
> или указать какая версия правильная и так далее ?

htdig-3.1.0b2.tar.gz - работает по адресу
http://www.mpei.ac.ru/htdig/search.shtml

Там надо скорректировать русские слова в поисковых
выражениях, чтобы они не перекодировались дважды -
я просто пропустил выдачу htdig через фильтр и
никаких патчей (фильтр прилагается) - вызов
htsearch заменяется на search.cgi: 

#!/bin/sh
ulimit -t 1 -c 0

/usr/local/httpd/koi/cgi-bin/htsearch |
/usr/local/httpd/koi/cgi-bin/htdig-conv


Патчей для него надо много, так как ошибок - туча,
но если не лазить куда не надо, то все работает,
за исключением того, что не работает. В списке
рассылки по htdig постоянно всплывают новые баги,
так что я решил вообще ничего не менять, только
пара мест (см. внизу). В новой версии, судя по
списку, появились новые глюки, так что я ее не
стал даже ставить. Еще одно исправление -
анализатор кодировки входного файла, но это я
сделал довольно некрасиво, если надо то пришлю.
Но, похоже, надо все документы считать документами
в cp-1251 (или другой), чтобы исключить
дублирование, так что особой нужды в таком
распознавателе нет. Общая ошибка htdig - параметры
из строки запроса воспринимаются не всегда так же,
как из конф. файла, была даже мысль генерировать
отдельный htdig.conf для каждого запроса. 


//*****************************************************************************
// Server::Server(char *host, int port)
//
Server::Server(char *host, int port)
{
    if (debug > 0)
	cout << endl << "New server: " << host << ", " <<
port << endl;

    _host = host;
    _port = port;
    _bad_server = 0;
    _documents = 0;

/*KT*/
_disallow.IgnoreCase();
/*/KT*/

   	
    //
    // Attempt to get a robots.txt file from the
specified server
    //
...

//*****************************************************************************
// void Server::robotstxt(Document &doc)
//   This will parse the robots.txt file which is
contained in the document.
//
void Server::robotstxt(Document &doc)
{
......	
	name = good_strtok(line, ":");
	if (!name)
	    continue;
/*KT*/
	while (name && isspace(*name))
	    name++;
/*/KT*/
        rest = good_strtok("\r");
	if (!rest)
	    rest = "";
........


-- 
Konstantin Tokar, http://www.mpei.ac.ru/tokar/

cgi-output-convert.tar.gz






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.