version 1.1, 2001/10/31 03:00:10
|
version 1.6, 2005/07/05 20:24:17
|
Line 1
|
Line 1
|
#!perl -w
|
#!/usr/bin/perl -w |
|
|
#!/usr/local/bin/perl -w
|
=head1 NAME |
|
|
=head1 NAME
|
mkRS.pl - Скрипт для создания таблиц для русского поиска |
|
|
mkRS.pl - Скрипт для создания таблиц для русского поиска
|
B<$base> информации о вопросах |
|
|
B<$base> информации о вопросах
|
=head1 SYNOPSIS |
|
|
=head1 SYNOPSIS
|
mkRS.pl Создаёт таблицы word2question, nf, nests (предварительно |
|
без предупреждения удаляя их) и очищает ProcessedBySearch. |
mkRS.pl Создаёт таблицы word2question, nf, nests (предварительно
|
|
без предупреждения удаляя их) и очищает ProcessedBySearch.
|
|
|
|
|
=head1 DESCRIPTION |
|
|
=head1 DESCRIPTION
|
Скрипт ищет в таблице Questions вопросы с нулевым ProcessedBySearch, |
|
добавляет информацию в таблицы word2question, nests, nf. Поле |
Скрипт ищет в таблице Questions вопросы с нулевым ProcessedBySearch,
|
ProcessedBySearch устанавливается в 1. Обрабатывает |
добавляет информацию в таблицы word2question, nests, nf. Поле
|
Questions_per_cicle*cicles_number вопросов, сбрасывая |
ProcessedBySearch устанавливается в 1. Обрабатывает
|
информацию в базу каждые Questions_per_cicle вопросов. |
Questions_per_cicle*cicles_number вопросов, сбрасывая
|
Значения по умолчанию: |
информацию в базу каждые Questions_per_cicle вопросов.
|
Questions_per_cicle=500; |
Значения по умолчанию:
|
cicles_number=1. |
Questions_per_cicle=500;
|
|
cicles_number=1.
|
|
|
=head1 AUTHOR |
|
|
=head1 AUTHOR
|
Роман Семизаров |
|
|
Роман Семизаров
|
|
|
=cut |
|
|
=cut
|
|
|
use locale; |
use locale;
|
use DBI; |
use DBI;
|
use POSIX qw (locale_h); |
use POSIX qw (locale_h);
|
use lib "../lib"; |
use chgkfiles;
|
use chgkfiles; |
use dbchgk;
|
use dbchgk; |
my $minstop=2000;
|
my $minstop=2000; |
open (STDERR,">errors");
|
|
do "common.pl";
|
my $DUMPDIR = $ENV{DUMPDIR} || "../dump"; |
do "chgk.cnf";
|
|
|
open (STDERR,">$DUMPDIR/errors"); |
die "Undefined \$maxwsize! check your chgk.cnf" unless $maxwsize;
|
do "common.pl"; |
|
do "chgk.cnf"; |
checktable('word2question','delete');
|
|
|
|
checktable('nests','delete');
|
die "Undefined \$maxwsize! check your chgk.cnf" unless $maxwsize; |
|
|
checktable('nf','delete');
|
checktable('word2question','delete'); |
|
|
|
checktable('nests','delete'); |
print "Creating word2question table...\n";
|
|
|
checktable('nf','delete'); |
mydo("CREATE TABLE word2question (
|
|
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
KEY idkey (id),
|
print "Creating word2question table...\n"; |
word INT UNSIGNED NOT NULL,
|
|
KEY wordkey (word),
|
mydo("CREATE TABLE word2question ( |
questions MEDIUMBLOB
|
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
)"
|
KEY idkey (id), |
)
|
word INT UNSIGNED NOT NULL, |
|
KEY wordkey (word), |
or die "Can't create WORD2QUESTION table: $!\n";
|
questions MEDIUMBLOB, |
|
INDEX(word) |
print "Creating nests table...\n";
|
)" |
|
) |
mydo("CREATE TABLE nests (
|
|
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
or die "Can't create WORD2QUESTION table: $!\n"; |
KEY idkey (id),
|
|
w1 CHAR($maxwsize) BINARY NOT NULL,
|
print "Creating nests table...\n"; |
KEY w1key (w1),
|
|
w2 INT UNSIGNED NOT NULL,
|
mydo("CREATE TABLE nests ( |
KEY w2key (w2)
|
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
)")
|
KEY idkey (id), |
|
w1 CHAR($maxwsize) BINARY NOT NULL, |
or die "Can't create NESTS table: $!\n";
|
KEY w1key (w1), |
|
w2 INT UNSIGNED NOT NULL, |
|
KEY w2key (w2) |
|
)") |
|
|
print "Creating nf table...\n";
|
or die "Can't create NESTS table: $!\n"; |
|
|
|
|
mydo("CREATE TABLE nf (
|
|
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
KEY idkey (id),
|
print "Creating nf table...\n"; |
word CHAR(30) BINARY NOT NULL,
|
|
KEY wordkey (word),
|
|
flag CHAR(5),
|
mydo("CREATE TABLE nf ( |
number INT UNSIGNED
|
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
)") or die "Can't create NF table: $!\n";
|
KEY idkey (id), |
|
word CHAR(30) BINARY NOT NULL, |
|
KEY wordkey (word), |
mydo("UPDATE Questions SET ProcessedBySearch=NULL");
|
flag CHAR(5), |
|
number INT UNSIGNED |
|
)") or die "Can't create NF table: $!\n"; |
|
|
|
|
|
mydo("UPDATE Questions SET ProcessedBySearch=NULL"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|