New -n <number> option sets size of active pool.
[irspy-moved-to-github.git] / bin / reindex.pl
1 #!/usr/bin/perl -w
2
3 # $Id: reindex.pl,v 1.2 2007-03-02 16:12:39 mike Exp $
4
5 use strict;
6 use warnings;
7 use ZOOM;
8
9 if (@ARGV != 1) {
10     print STDERR "Usage: $0 target\n";
11     exit 1;
12 }
13
14 my $conn = new ZOOM::Connection($ARGV[0]);
15 $conn->option(preferredRecordSyntax => "xml");
16 $conn->option(elementSetName => "zebra::data");
17 my $rs = $conn->search_pqf('@attr 1=_ALLRECORDS @attr 2=103 ""');
18 my $n = $rs->size();
19 $| = 1;
20 print "$0: reindexing $n records\n";
21 foreach my $i (1..$n) {
22     print ".";
23     print " $i/$n (", int($i*100/$n), "%)\n" if $i % 50 == 0;
24     my $rec = $rs->record($i-1);
25     my $xml = $rec->render();
26     open F, ">$i.xml" or die "can't open\n";
27     print F $xml;
28     close F;
29     #update($conn, $xml);
30 }
31 print " $n/$n (100%)\n" if $n % 50 != 0;
32 commit($conn);
33 print "committed\n";
34
35
36 # These might be better as ZOOM::Connection methods
37 sub update {
38     my($conn, $xml) = @_;
39
40     my $p = $conn->package();
41     $p->option(action => "specialUpdate");
42     $p->option(record => $xml);
43     $p->send("update");
44     $p->destroy();
45 }
46
47 sub commit {
48     my($conn) = @_;
49
50     my $p = $conn->package();
51     $p->send("commit");
52     $p->destroy();
53 }