File:  [Local Repository] / db / prgsrc / mkRS.pl
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Thu Nov 1 01:44:59 2001 UTC (22 years, 6 months ago) by boris
Branches: MAIN
CVS tags: HEAD
added files to makefile. Added use lib "../lib";

#!/usr/bin/perl -w

=head1 NAME

mkRS.pl - Скрипт для создания таблиц для русского поиска 

B<$base> информации о вопросах 

=head1 SYNOPSIS

mkRS.pl Создаёт таблицы word2question, nf, nests (предварительно 
        без предупреждения удаляя их) и очищает ProcessedBySearch.



=head1 DESCRIPTION

Скрипт ищет в таблице Questions вопросы с нулевым ProcessedBySearch,
добавляет информацию в таблицы word2question, nests, nf. Поле 
ProcessedBySearch устанавливается в 1. Обрабатывает 
Questions_per_cicle*cicles_number вопросов, сбрасывая 
информацию в базу каждые Questions_per_cicle вопросов.
Значения по умолчанию:
Questions_per_cicle=500;
cicles_number=1.


=head1 AUTHOR

Роман Семизаров


=cut

use locale;
use DBI;
use POSIX qw (locale_h);
use lib "../lib";
use chgkfiles;
use dbchgk;
my $minstop=2000;
open (STDERR,">errors");
do "common.pl";
do "chgk.cnf";

die "Undefined \$maxwsize! check your chgk.cnf" unless $maxwsize;

checktable('word2question','delete');

checktable('nests','delete');

checktable('nf','delete');


print "Creating word2question table...\n";

	mydo("CREATE TABLE word2question (
		id     INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                            KEY idkey (id),
		word   INT UNSIGNED NOT NULL, 
                            KEY wordkey (word),
		questions  MEDIUMBLOB
               )"
            )

	or die "Can't create WORD2QUESTION table: $!\n";

print "Creating nests table...\n";

	mydo("CREATE TABLE nests (
		id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                            KEY idkey (id),
		w1   CHAR($maxwsize) BINARY NOT NULL, 
                            KEY w1key (w1),
		w2   INT UNSIGNED NOT NULL,
                            KEY w2key (w2)             
	)")

	or die "Can't create NESTS table: $!\n";




print "Creating nf table...\n";


mydo("CREATE TABLE nf (
		id   INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
                    KEY idkey (id),
		word CHAR(30) BINARY NOT NULL, 
                            KEY wordkey (word),
	        flag  CHAR(5),
	        number INT UNSIGNED
  )") or die "Can't create NF table: $!\n";


mydo("UPDATE Questions SET ProcessedBySearch=NULL");









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