X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FSearch.pm;h=43587dcf4e7d334d029d94dc5ff2a979645225cc;hp=8fe2541cccd21f326605d79b70dc4ef598f4edbc;hb=34090ca531b2884cc67af016548fed67f398507e;hpb=be11cc4fd68cb4f99554d1d26233d52a854ed7f4 diff --git a/lib/BackupPC/Search.pm b/lib/BackupPC/Search.pm index 8fe2541..43587dc 100644 --- a/lib/BackupPC/Search.pm +++ b/lib/BackupPC/Search.pm @@ -1,5 +1,5 @@ #!/usr/bin/perl -package BackupPC::SearchLib; +package BackupPC::Search; use strict; use BackupPC::CGI::Lib qw(:all); @@ -10,7 +10,7 @@ use vars qw(%In $MyURL); 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; @@ -18,11 +18,23 @@ 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 } ); @@ -134,12 +146,12 @@ my $sort_def = { 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', @@ -148,8 +160,8 @@ my $sort_def = { }, 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', @@ -262,7 +274,7 @@ sub getFilesHyperEstraier($) { 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 ); @@ -952,9 +964,9 @@ sub displayGrid($) { } $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');