#!perl -w
#!/usr/local/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 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>