1: #!perl -w
2:
3: #!/usr/local/bin/perl -w
4:
5: =head1 NAME
6:
7: mkRS.pl - Скрипт для создания таблиц для русского поиска
8:
9: B<$base> информации о вопросах
10:
11: =head1 SYNOPSIS
12:
13: mkRS.pl Создаёт таблицы word2question, nf, nests (предварительно
14: без предупреждения удаляя их) и очищает ProcessedBySearch.
15:
16:
17:
18: =head1 DESCRIPTION
19:
20: Скрипт ищет в таблице Questions вопросы с нулевым ProcessedBySearch,
21: добавляет информацию в таблицы word2question, nests, nf. Поле
22: ProcessedBySearch устанавливается в 1. Обрабатывает
23: Questions_per_cicle*cicles_number вопросов, сбрасывая
24: информацию в базу каждые Questions_per_cicle вопросов.
25: Значения по умолчанию:
26: Questions_per_cicle=500;
27: cicles_number=1.
28:
29:
30: =head1 AUTHOR
31:
32: Роман Семизаров
33:
34:
35: =cut
36:
37: use locale;
38: use DBI;
39: use POSIX qw (locale_h);
40: use chgkfiles;
41: use dbchgk;
42: my $minstop=2000;
43: open (STDERR,">errors");
44: do "common.pl";
45: do "chgk.cnf";
46:
47: die "Undefined \$maxwsize! check your chgk.cnf" unless $maxwsize;
48:
49: checktable('word2question','delete');
50:
51: checktable('nests','delete');
52:
53: checktable('nf','delete');
54:
55:
56: print "Creating word2question table...\n";
57:
58: mydo("CREATE TABLE word2question (
59: id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
60: KEY idkey (id),
61: word INT UNSIGNED NOT NULL,
62: KEY wordkey (word),
63: questions MEDIUMBLOB
64: )"
65: )
66:
67: or die "Can't create WORD2QUESTION table: $!\n";
68:
69: print "Creating nests table...\n";
70:
71: mydo("CREATE TABLE nests (
72: id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
73: KEY idkey (id),
74: w1 CHAR($maxwsize) BINARY NOT NULL,
75: KEY w1key (w1),
76: w2 INT UNSIGNED NOT NULL,
77: KEY w2key (w2)
78: )")
79:
80: or die "Can't create NESTS table: $!\n";
81:
82:
83:
84:
85: print "Creating nf table...\n";
86:
87:
88: mydo("CREATE TABLE nf (
89: id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
90: KEY idkey (id),
91: word CHAR(30) BINARY NOT NULL,
92: KEY wordkey (word),
93: flag CHAR(5),
94: number INT UNSIGNED
95: )") or die "Can't create NF table: $!\n";
96:
97:
98: mydo("UPDATE Questions SET ProcessedBySearch=NULL");
99:
100:
101:
102:
103:
104:
105:
106:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>