/[webpac2]/trunk/run.pl
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/run.pl

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

revision 416 by dpavlin, Sun Feb 26 23:21:50 2006 UTC revision 434 by dpavlin, Mon Apr 17 16:50:53 2006 UTC
# Line 13  use WebPAC::Input 0.03; Line 13  use WebPAC::Input 0.03;
13  use WebPAC::Store 0.03;  use WebPAC::Store 0.03;
14  use WebPAC::Normalize::XML;  use WebPAC::Normalize::XML;
15  use WebPAC::Output::TT;  use WebPAC::Output::TT;
 use WebPAC::Output::Estraier '0.10';  
16  use YAML qw/LoadFile/;  use YAML qw/LoadFile/;
17  use Getopt::Long;  use Getopt::Long;
18  use File::Path;  use File::Path;
# Line 41  limit loading to 100 records Line 40  limit loading to 100 records
40    
41  remove database and Hyper Estraier index before indexing  remove database and Hyper Estraier index before indexing
42    
43  =item --one=database_name  =item --only=database_name
44    
45  reindex just single database  reindex just single database (legacy name is --one)
46    
47  =item --config conf/config.yml  =item --config conf/config.yml
48    
# Line 59  my $limit; Line 58  my $limit;
58  my $clean = 0;  my $clean = 0;
59  my $config = 'conf/config.yml';  my $config = 'conf/config.yml';
60  my $debug = 0;  my $debug = 0;
61  my $one_db_name;  my $only_db_name;
62    
63  GetOptions(  GetOptions(
64          "limit=i" => \$limit,          "limit=i" => \$limit,
65          "offset=i" => \$offset,          "offset=i" => \$offset,
66          "clean" => \$clean,          "clean" => \$clean,
67          "one=s" => \$one_db_name,          "one=s" => \$only_db_name,
68            "only=s" => \$only_db_name,
69          "config" => \$config,          "config" => \$config,
70          "debug" => \$debug,          "debug" => \$debug,
71  );  );
# Line 76  print "config = ",Dumper($config) if ($d Line 76  print "config = ",Dumper($config) if ($d
76    
77  die "no databases in config file!\n" unless ($config->{databases});  die "no databases in config file!\n" unless ($config->{databases});
78    
79    my $log = _new WebPAC::Common()->_get_logger();
80    
81    my $use_indexer = $config->{use_indexer} || 'hyperestraier';
82    $log->info("using $use_indexer indexing engine...");
83    
84  my $total_rows = 0;  my $total_rows = 0;
85  my $start_t = time();  my $start_t = time();
86    
87  while (my ($database, $db_config) = each %{ $config->{databases} }) {  while (my ($database, $db_config) = each %{ $config->{databases} }) {
88    
89          next if ($one_db_name && $database !~ m/$one_db_name/i);          next if ($only_db_name && $database !~ m/$only_db_name/i);
90    
91          my $log = _new WebPAC::Common()->_get_logger();          my $indexer;
92    
93          #          my $indexer_config = $config->{$use_indexer} || $log->logdie("can't find '$use_indexer' part in confguration");
94          # open Hyper Estraier database          $indexer_config->{database} = $database;
95          #          $indexer_config->{clean} = $clean;
96            $indexer_config->{label} = $db_config->{name};
97    
98            # important: clean database just once!
99            $clean = 0;
100    
101            if ($use_indexer eq 'hyperestraier') {
102    
103                    # open Hyper Estraier database
104                    use WebPAC::Output::Estraier '0.10';
105                    $indexer = new WebPAC::Output::Estraier( %{ $indexer_config } );
106            
107            } elsif ($use_indexer eq 'kinosearch') {
108    
109                    # open KinoSearch
110                    use WebPAC::Output::KinoSearch;
111                    $indexer_config->{clean} = 1 unless (-e $indexer_config->{index_path});
112                    $indexer = new WebPAC::Output::KinoSearch( %{ $indexer_config } );
113    
114          my $est_config = $config->{hyperestraier} || $log->logdie("can't find 'hyperestraier' part in confguration");          } else {
115          $est_config->{database} = $database;                  $log->logdie("unknown use_indexer: $use_indexer");
116          $est_config->{clean} = $clean;          }
         $est_config->{label} = $db_config->{name};  
117    
118          my $est = new WebPAC::Output::Estraier( %{ $est_config } );          $log->logide("can't continue without valid indexer") unless ($indexer);
119    
120          #          #
121          # now WebPAC::Store          # now WebPAC::Store
# Line 198  while (my ($database, $db_config) = each Line 219  while (my ($database, $db_config) = each
219    
220                          my $ds = $n->data_structure($row);                          my $ds = $n->data_structure($row);
221    
222                          $est->add(                          $indexer->add(
223                                  id => $input->{name} . "/" . $mfn,                                  id => $input->{name} . "/" . $mfn,
224                                  ds => $ds,                                  ds => $ds,
225                                  type => $config->{hyperestraier}->{type},                                  type => $config->{$use_indexer}->{type},
226                          );                          );
227    
228                          $total_rows++;                          $total_rows++;
# Line 209  while (my ($database, $db_config) = each Line 230  while (my ($database, $db_config) = each
230    
231          };          };
232    
233            eval { $indexer->finish } if ($indexer->can('finish'));
234    
235          my $dt = time() - $start_t;          my $dt = time() - $start_t;
236          $log->info("$total_rows records indexed in " .          $log->info("$total_rows records indexed in " .
237                  sprintf("%.2f sec [%.2f rec/sec]",                  sprintf("%.2f sec [%.2f rec/sec]",
# Line 221  while (my ($database, $db_config) = each Line 244  while (my ($database, $db_config) = each
244          #          #
245          if (ref($db_config->{links}) eq 'ARRAY') {          if (ref($db_config->{links}) eq 'ARRAY') {
246                  foreach my $link (@{ $db_config->{links} }) {                  foreach my $link (@{ $db_config->{links} }) {
247                          $log->info("adding link $database -> $link->{to} [$link->{credit}]");                          if ($use_indexer eq 'hyperestraier') {
248                          $est->add_link(                                  $log->info("adding link $database -> $link->{to} [$link->{credit}]");
249                                  from => $database,                                  $indexer->add_link(
250                                  to => $link->{to},                                          from => $database,
251                                  credit => $link->{credit},                                          to => $link->{to},
252                          );                                          credit => $link->{credit},
253                                    );
254                            } else {
255                                    $log->warn("NOT IMPLEMENTED WITH $use_indexer: adding link $database -> $link->{to} [$link->{credit}]");
256                            }
257                  }                  }
258          }          }
259    

Legend:
Removed from v.416  
changed lines
  Added in v.434

  ViewVC Help
Powered by ViewVC 1.1.26