View | Details | Raw Unified | Return to bug 8746
Collapse All | Expand All

(-)a/misc/migration_tools/rebuild_zebra_sliced.sh (-4 / +22 lines)
Lines 9-15 Index Koha records by chunks. It is useful when a record causes errors and Link Here
9
stops the indexing process. With this script, if indexing of one chunk fails,
9
stops the indexing process. With this script, if indexing of one chunk fails,
10
that chunk is split into two or more chunks, and indexing continues on these chunks.
10
that chunk is split into two or more chunks, and indexing continues on these chunks.
11
rebuild_zebra.pl is called only once to export records. Splitting and indexing
11
rebuild_zebra.pl is called only once to export records. Splitting and indexing
12
is handled by this script (using yaz-marcdump and zebraidx).
12
is handled by this script (using zebraidx for indexing).
13
13
14
Usage:
14
Usage:
15
$scriptname [-t type] [-l X] [-o X] [-s X] [-d /export/dir] [-L /log/dir] [-r] [-f] [--reset-index]
15
$scriptname [-t type] [-l X] [-o X] [-s X] [-d /export/dir] [-L /log/dir] [-r] [-f] [--reset-index]
Lines 41-46 splitfile() { Link Here
41
    local prefix=$2
41
    local prefix=$2
42
    local size=$3
42
    local size=$3
43
    local script='
43
    local script='
44
        my $indexmode = '"$INDEXMODE"';
44
        my $prefix = '"\"$prefix\""';
45
        my $prefix = '"\"$prefix\""';
45
        my $size = '"$size"';
46
        my $size = '"$size"';
46
        my ($i,$count) = (0,0);
47
        my ($i,$count) = (0,0);
Lines 52-61 splitfile() { Link Here
52
            if ($closed) {
53
            if ($closed) {
53
                open($out, ">", sprintf("$prefix%02d", $i));
54
                open($out, ">", sprintf("$prefix%02d", $i));
54
                $closed = 0;
55
                $closed = 0;
56
                if ($indexmode == "dom" && $line !~ /<collection>/) {
57
                    print $out "<collection>";
58
                }
55
            }
59
            }
56
            print $out $line;
60
            print $out $line;
57
            $count++ if ($line =~ m|^</record>|);
61
            $count++ if ($line =~ m|^</record>|);
58
            if ($count == $size) {
62
            if ($count == $size) {
63
                if ($indexmode == "dom" && $line !~ m|</collection>|) {
64
                    print $out "</collection>";
65
                }
59
                $count = 0;
66
                $count = 0;
60
                $i++;
67
                $i++;
61
                close($out);
68
                close($out);
Lines 88-94 indexfile() { Link Here
88
            $ZEBRAIDX_CMD >$logfile 2>&1
95
            $ZEBRAIDX_CMD >$logfile 2>&1
89
            grep "Records: $size" $logfile >/dev/null 2>&1
96
            grep "Records: $size" $logfile >/dev/null 2>&1
90
            if [ $? -ne 0 ]; then
97
            if [ $? -ne 0 ]; then
91
                echo "Indexing failed. Split file and continue..."
98
                echo "Indexing failed. See log file $logfile"
99
                echo "Split file and continue..."
92
                indexfile $chunkfile $(($chunkssize/2))
100
                indexfile $chunkfile $(($chunkssize/2))
93
            else
101
            else
94
                ZEBRAIDX_CMD="$ZEBRAIDX -c $CONFIGFILE -d $TYPE -g marcxml commit"
102
                ZEBRAIDX_CMD="$ZEBRAIDX -c $CONFIGFILE -d $TYPE -g marcxml commit"
Lines 274-289 EXPORTFILE= Link Here
274
case $TYPE in
282
case $TYPE in
275
    biblios )
283
    biblios )
276
        EXPORTFILE="$EXPORTDIR/biblio/exported_records"
284
        EXPORTFILE="$EXPORTDIR/biblio/exported_records"
285
        indexmode_config_name="zebra_bib_index_mode"
277
        ;;
286
        ;;
278
    authorities )
287
    authorities )
279
        EXPORTFILE="$EXPORTDIR/authority/exported_records"
288
        EXPORTFILE="$EXPORTDIR/authority/exported_records"
289
        indexmode_config_name="zebra_auth_index_mode"
280
        ;;
290
        ;;
281
    * )
291
    * )
282
        echo "Error: TYPE '$TYPE' is not supported"
292
        echo "Error: TYPE '$TYPE' is not supported"
283
        exit 1
293
        exit 1
284
esac
294
esac
285
295
286
CONFIGFILE="$(dirname $KOHA_CONF)/zebradb/zebra-$TYPE.cfg"
296
INDEXMODE=$(perl -e '
297
    use C4::Context;
298
    print C4::Context->config('"$indexmode_config_name"');
299
')
300
301
CONFIGFILE=$(perl -e '
302
    use C4::Context;
303
    my $zebra_server = ('"$TYPE"' eq "biblios") ? "biblioserver" : "authorityserver";
304
    print C4::Context->zebraconfig($zebra_server)->{config};
305
')
287
306
288
if [ $RESETINDEX = "yes" ]; then
307
if [ $RESETINDEX = "yes" ]; then
289
    RESETINDEX_CMD="$ZEBRAIDX -c $CONFIGFILE init"
308
    RESETINDEX_CMD="$ZEBRAIDX -c $CONFIGFILE init"
290
- 

Return to bug 8746