#!/usr/bin/perl
-package BackupPC::SearchLib;
+package BackupPC::Search;
use strict;
use BackupPC::CGI::Lib qw(:all);
use Time::HiRes qw/time/;
use XML::Writer;
use IO::File;
-use BackupPC::Search::Estraier;
+use Data::Dump qw(dump);
my $on_page = 100;
my $pager_pages = 10;
my $dsn = $Conf{SearchDSN};
my $db_user = $Conf{SearchUser} || '';
-my $hest_node_url = $Conf{HyperEstraierIndex};
+sub search_module {
-my $dbh;
+ my $bpc = BackupPC::Lib->new || die;
+ my %Conf = $bpc->Conf();
+
+ my $search_module = $Conf{SearchModule} || die "search is disabled";
+ eval "use $search_module";
+ if ( $@ ) {
+ warn "ERROR: $search_module: $!";
+ } else {
+ warn "# using $search_module for full-text search";
+ }
+ return $search_module->new( %Conf );
+}
+my $dbh;
sub get_dbh {
$dbh ||= DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );
search => {
default => 'date_a',
sql => {
- share_d => 'shares.name DESC',
- share_a => 'shares.name ASC',
- path_d => 'files.path DESC',
- path_a => 'files.path ASC',
- num_d => 'files.backupnum DESC',
- num_a => 'files.backupnum ASC',
+ sname_d => 'shares.name DESC',
+ sname_a => 'shares.name ASC',
+ filepath_d => 'files.path DESC',
+ filepath_a => 'files.path ASC',
+ backupnum_d => 'files.backupnum DESC',
+ backupnum_a => 'files.backupnum ASC',
size_d => 'files.size DESC',
size_a => 'files.size ASC',
date_d => 'files.date DESC',
}, burn => {
default => 'date_a',
sql => {
- share_d => 'host DESC, share DESC',
- share_a => 'host ASC, share ASC',
+ sname_d => 'host DESC, share DESC',
+ sname_a => 'host ASC, share ASC',
num_d => 'backupnum DESC',
num_a => 'backupnum ASC',
date_d => 'date DESC',
my $shareid = $param->{'search_share'};
my ($backup_from, $backup_to, $files_from, $files_to) = dates_from_form($param);
- return BackupPC::Search::Estraier->new( $hest_node_url )->search(
+ return search_module->search(
$offset, $on_page, $param->{sort},
$q, $shareid, $backup_from, $backup_to, $files_from, $files_to
);
}
$retHTML .=
- sort_header($param, 'Share', 'share', 'center') .
- sort_header($param, 'Type and Name', 'path', 'center') .
- sort_header($param, '#', 'num', 'center') .
+ sort_header($param, 'Share', 'sname', 'center') .
+ sort_header($param, 'Type and Name', 'filepath', 'center') .
+ sort_header($param, '#', 'backupnum', 'center') .
sort_header($param, 'Size', 'size', 'center') .
sort_header($param, 'Date', 'date', 'center');