File:  [Local Repository] / db / prgsrc / mkRS.pl
Revision 1.9: download - view: text, annotated - select for diffs - revision graph
Fri Feb 8 22:49:12 2008 UTC (16 years, 3 months ago) by roma7
Branches: MAIN
CVS tags: HEAD
dbxml.php added

    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: 
   35: 
   36: use locale;
   37: use DBI;
   38: use POSIX qw (locale_h);
   39: use lib "../lib";
   40: use chgkfiles;
   41: use dbchgk;
   42: my $minstop=2000;
   43: 
   44: my $DUMPDIR = $ENV{DUMPDIR} || "../dump";
   45: 
   46: open (STDERR,">$DUMPDIR/errors");
   47: do "common.pl";
   48: do "chgk.cnf";
   49: 
   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:    mydo ("DROP TABLE IF EXISTS word2question");
   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),
   67: 		questions  MEDIUMBLOB
   68:                ) type=MyISAM"
   69:             )
   70: 
   71: 	or die "Can't create WORD2QUESTION table: $!\n";
   72: 
   73: print "Creating nests table...\n";
   74:    mydo ("DROP TABLE IF EXISTS nests");
   75: 	mydo("CREATE TABLE nests (
   76: 		id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
   77:                             KEY idkey (id),
   78: 		w1   CHAR($maxwsize)  CHARACTER SET koi8r COLLATE koi8r_general_ci  NOT NULL, 
   79:                             KEY w1key (w1),
   80: 		w2   INT UNSIGNED NOT NULL,
   81:                             KEY w2key (w2)             
   82: 	) type=MyISAM")
   83: 
   84: 	or die "Can't create NESTS table: $!\n";
   85: 
   86: 
   87: 
   88: 
   89: print "Creating nf table...\n";
   90: 
   91:    mydo ("DROP TABLE IF EXISTS nf");
   92: 
   93: mydo("CREATE TABLE nf (
   94: 		id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
   95:                     KEY idkey (id),
   96: 		word CHAR(30) CHARACTER SET koi8r COLLATE koi8r_general_ci NOT NULL, 
   97:                             KEY wordkey (word),
   98: 	        flag  CHAR(5),
   99: 	        number INT UNSIGNED
  100:   ) type=MyISAM") 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>