Annotation of db/prgsrc/mkRS.pl, revision 1.6

1.2       boris       1: #!/usr/bin/perl -w
                      2: 
                      3: =head1 NAME
                      4: 
                      5: mkRS.pl - Скрипт для создания таблиц для русского поиска 
                      6: 
                      7: B<$base> информации о вопросах 
                      8: 
                      9: =head1 SYNOPSIS
                     10: 
                     11: mkRS.pl Создаёт таблицы word2question, nf, nests (предварительно 
                     12:         без предупреждения удаляя их) и очищает ProcessedBySearch.
                     13: 
                     14: 
                     15: 
                     16: =head1 DESCRIPTION
                     17: 
                     18: Скрипт ищет в таблице Questions вопросы с нулевым ProcessedBySearch,
                     19: добавляет информацию в таблицы word2question, nests, nf. Поле 
                     20: ProcessedBySearch устанавливается в 1. Обрабатывает 
                     21: Questions_per_cicle*cicles_number вопросов, сбрасывая 
                     22: информацию в базу каждые Questions_per_cicle вопросов.
                     23: Значения по умолчанию:
                     24: Questions_per_cicle=500;
                     25: cicles_number=1.
                     26: 
                     27: 
                     28: =head1 AUTHOR
                     29: 
                     30: Роман Семизаров
                     31: 
                     32: 
                     33: =cut
                     34: 
1.5       boris      35: 
1.2       boris      36: use locale;
                     37: use DBI;
                     38: use POSIX qw (locale_h);
1.3       boris      39: use lib "../lib";
1.2       boris      40: use chgkfiles;
                     41: use dbchgk;
                     42: my $minstop=2000;
1.5       boris      43: 
                     44: my $DUMPDIR = $ENV{DUMPDIR} || "../dump";
                     45: 
                     46: open (STDERR,">$DUMPDIR/errors");
1.4       boris      47: do "common.pl";
                     48: do "chgk.cnf";
1.5       boris      49: 
1.2       boris      50: 
                     51: die "Undefined \$maxwsize! check your chgk.cnf" unless $maxwsize;
                     52: 
                     53: checktable('word2question','delete');
                     54: 
                     55: checktable('nests','delete');
                     56: 
                     57: checktable('nf','delete');
                     58: 
                     59: 
                     60: print "Creating word2question table...\n";
                     61: 
                     62:        mydo("CREATE TABLE word2question (
                     63:                id     INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                     64:                             KEY idkey (id),
                     65:                word   INT UNSIGNED NOT NULL, 
                     66:                             KEY wordkey (word),
1.6     ! boris      67:                questions  MEDIUMBLOB,
        !            68:                 INDEX(word)
1.2       boris      69:                )"
                     70:             )
                     71: 
                     72:        or die "Can't create WORD2QUESTION table: $!\n";
                     73: 
                     74: print "Creating nests table...\n";
                     75: 
                     76:        mydo("CREATE TABLE nests (
                     77:                id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                     78:                             KEY idkey (id),
                     79:                w1   CHAR($maxwsize) BINARY NOT NULL, 
                     80:                             KEY w1key (w1),
                     81:                w2   INT UNSIGNED NOT NULL,
                     82:                             KEY w2key (w2)             
                     83:        )")
                     84: 
                     85:        or die "Can't create NESTS table: $!\n";
                     86: 
                     87: 
                     88: 
                     89: 
                     90: print "Creating nf table...\n";
                     91: 
                     92: 
                     93: mydo("CREATE TABLE nf (
                     94:                id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                     95:                     KEY idkey (id),
                     96:                word CHAR(30) BINARY NOT NULL, 
                     97:                             KEY wordkey (word),
                     98:                flag  CHAR(5),
                     99:                number INT UNSIGNED
                    100:   )") or die "Can't create NF table: $!\n";
                    101: 
                    102: 
                    103: mydo("UPDATE Questions SET ProcessedBySearch=NULL");
                    104: 
                    105: 
                    106: 
                    107: 
                    108: 
                    109: 
                    110: 
                    111: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>