#!/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; my $DUMPDIR = $ENV{DUMPDIR} || "../dump"; open (STDERR,">$DUMPDIR/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");