/[webpac2]/trunk/lib/WebPAC/Output/KinoSearch.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/WebPAC/Output/KinoSearch.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 432 by dpavlin, Mon Apr 17 16:01:02 2006 UTC revision 536 by dpavlin, Mon Jun 26 16:39:51 2006 UTC
# Line 9  use KinoSearch::InvIndexer; Line 9  use KinoSearch::InvIndexer;
9  use KinoSearch::Analysis::PolyAnalyzer;  use KinoSearch::Analysis::PolyAnalyzer;
10  use Encode qw/from_to/;  use Encode qw/from_to/;
11  use Data::Dumper;  use Data::Dumper;
12    use Storable;
13    
14  =head1 NAME  =head1 NAME
15    
# Line 16  WebPAC::Output::KinoSearch - Create Kino Line 17  WebPAC::Output::KinoSearch - Create Kino
17    
18  =head1 VERSION  =head1 VERSION
19    
20  Version 0.01  Version 0.02
21    
22  =cut  =cut
23    
24  our $VERSION = '0.01';  our $VERSION = '0.02';
25    
26  =head1 SYNOPSIS  =head1 SYNOPSIS
27    
# Line 99  sub new { Line 100  sub new {
100                  analyzer => $analyzer,                  analyzer => $analyzer,
101          );          );
102    
103            my $fields_path = $self->{index_path} . '/fields.storable';
104            $fields_path =~ s#//#/#g;
105            if (-e $fields_path) {
106                    $self->{fields} = retrieve($fields_path) ||
107                            $log->warn("can't open $fields_path: $!");
108            } else {
109                    $log->error("This will be dummy run since no fields statistics are found!");
110                    $log->error("You will have to re-run indexing to get search results!");
111                    $self->{dummy_run} = 1;
112            }
113            $self->{fields_path} = $fields_path;
114    
115          foreach my $f (@{ $self->{fields} }) {          foreach my $f (@{ $self->{fields} }) {
116                  $self->{invindex}->spec_field(                  $self->{invindex}->spec_field(
117                          name  => $f,                          name  => $f,
# Line 155  sub add { Line 168  sub add {
168    
169          my $doc = $self->{invindex}->new_doc( $uri ) || $log->logdie("can't create new_doc( $uri )");          my $doc = $self->{invindex}->new_doc( $uri ) || $log->logdie("can't create new_doc( $uri )");
170    
171          sub add_value($$) {          sub add_value($$$$$) {
172                  my ($n,$v) = @_;                  my ($self,$log,$doc,$n,$v) = @_;
173                    return unless ($v);
174    
175                    $self->{value_usage}->{$n}++;
176                    return if ($self->{dummy_run});
177    
178                  eval { $doc->set_value($n, $self->convert($v) ) };                  eval { $doc->set_value($n, $self->convert($v) ) };
179                  $log->warn("can't insert: $n = $v") if ($@);                  $log->warn("can't insert: $n = $v") if ($@);
180          }          }
181    
182          add_value('uri', $uri);          add_value($self,$log,$doc, 'uri', $uri);
183    
184          $log->debug("ds = ", sub { Dumper($args->{'ds'}) } );          $log->debug("ds = ", sub { Dumper($args->{'ds'}) } );
185    
# Line 183  sub add { Line 201  sub add {
201                  $vals = $self->convert( $vals ) or                  $vals = $self->convert( $vals ) or
202                          $log->logdie("can't convert '$vals' to UTF-8");                          $log->logdie("can't convert '$vals' to UTF-8");
203    
204                  add_value( $tag, $vals );                  add_value($self, $log, $doc, $tag, $vals );
205          }          }
206    
207          if (my $text = $args->{'text'}) {          if (my $text = $args->{'text'}) {
208                  add_value( 'bodytext', $text );                  add_value($self, $log, $doc, 'bodytext', $text );
209          }          }
210    
211          #$log->debug("adding ", sub { $doc->dump_draft } );          #$log->debug("adding ", sub { $doc->dump_draft } );
# Line 196  sub add { Line 214  sub add {
214          return 1;          return 1;
215  }  }
216    
217    =head2 finish
218    
219    Close index
220    
221     $index->finish;
222    
223    =cut
224    
225    sub finish {
226            my $self = shift;
227    
228            my $log = $self->_get_logger();
229    
230            $log->info("finish index writing to disk");
231            $self->{invindex}->finish;
232    
233            $log->info("writing value usage file");
234    
235            # add fields from last run
236            map { $self->{value_usage}->{$_}++ } @{ $self->{fields} };
237    
238            my @fields = keys %{ $self->{value_usage} };
239            store \@fields, $self->{fields_path} ||
240                    $log->warn("can't write $self->{fields_path}: $!");
241    
242    }
243    
244  =head2 convert  =head2 convert
245    

Legend:
Removed from v.432  
changed lines
  Added in v.536

  ViewVC Help
Powered by ViewVC 1.1.26