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