Line # Revision Author
1 29 dpavlin #!/usr/bin/perl -w
2
3 use strict;
4 52 dpavlin use Search::Estraier 0.06;
5 83 dpavlin use parse_trivia;
6 29 dpavlin
7 # score for words in title
8 my $title_rank = 3;
9
10 open(my $t, "gzip -cd trivia.list.gz |") || die "can't open trivia.list.gz: $!";
11
12 41 dpavlin # open node
13 50 dpavlin my $node = Search::Estraier::Node->new(
14 url => 'http://localhost:1978/node/trivia',
15 user => 'admin',
16 passwd => 'admin',
17 52 dpavlin create => 1,
18 50 dpavlin );
19 29 dpavlin
20 83 dpavlin my $nr = 1;
21 86 dpavlin my $max = 0; # no limit
22 29 dpavlin
23 83 dpavlin parse_trivia($t, sub {
24 29 dpavlin
25 83 dpavlin my $a = {@_};
26 29 dpavlin
27 # create a document object
28 50 dpavlin my $doc = Search::Estraier::Document->new;
29 29 dpavlin
30 # add attributes to the document object
31 83 dpavlin $doc->add_attr('@uri', "file://localhost/trivia/$nr");
32 30 dpavlin
33 83 dpavlin $doc->add_attr('@title', $a->{title});
34 30 dpavlin $doc->add_hidden_text(
35 83 dpavlin (($a->{title} . ' ') x $title_rank)
36 30 dpavlin );
37
38 83 dpavlin $doc->add_attr('@size', length($a->{trivia}));
39 29 dpavlin
40 83 dpavlin $doc->add_attr('year', $a->{year}) if ($a->{year});
41 foreach my $q ( $a->{qv} ) {
42 86 dpavlin $q = join(' ', @$q) if (ref($q) eq 'ARRAY');
43 next unless ($q);
44 29 dpavlin $doc->add_attr('quote', $q);
45 $doc->add_hidden_text($q);
46 }
47
48 # add the body text to the document object
49 83 dpavlin $doc->add_text($a->{trivia});
50 29 dpavlin
51 # register the document object to the database
52 41 dpavlin $node->put_doc($doc);
53 29 dpavlin
54 86 dpavlin $nr++;
55 last if ($max && $nr > $max);
56
57 83 dpavlin });