my $user = $Conf{SearchUser} || '';
my $use_hest = $Conf{HyperEstraierIndex};
-my ($index_path, $index_node_url);
-if ($use_hest) {
- use HyperEstraier;
- if ($use_hest =~ m#^http://#) {
- $index_node_url = $use_hest;
- } else {
- $index_path = $TopDir . '/' . $index_path;
- $index_path =~ s#//#/#g;
- }
-}
-print "-- $use_hest : $index_path OR $index_node_url --\n";
-
+my ($index_path, $index_node_url) = getHyperEstraier_url($use_hest);
my $dbh = DBI->connect($dsn, $user, "", { RaiseError => 1, AutoCommit => 0 });
return ($results, \@ret);
}
+sub getHyperEstraier_url($) {
+ my ($use_hest) = @_;
+
+ return unless $use_hest;
+
+ use HyperEstraier;
+ my ($index_path, $index_node_url);
+
+ if ($use_hest =~ m#^http://#) {
+ $index_node_url = $use_hest;
+ } else {
+ $index_path = $TopDir . '/' . $index_path;
+ $index_path =~ s#//#/#g;
+ }
+ return ($index_path, $index_node_url);
+}
+
sub getFilesHyperEstraier($) {
my ($param) = @_;
use HyperEstraier;
+ my ($index_path, $index_node_url) = getHyperEstraier_url($index_path);
+
# open the database
- my $db = HyperEstraier::Database->new();
- $db->open($index_path, $HyperEstraier::ESTDBREADER);
+ my $db;
+ if ($index_path) {
+ $db = HyperEstraier::Database->new();
+ $db->open($index_path, $HyperEstraier::ESTDBREADER);
+ } elsif ($index_node_url) {
+ $db ||= HyperEstraier::Node->new($index_node_url);
+ $db->set_auth('admin', 'admin');
+ } else {
+ die "BUG: unimplemented";
+ }
# create a search condition object
my $cond = HyperEstraier::Condition->new();
$cond->set_order( 'date NUMA' );
# get the result of search
- my $result = $db->search($cond, 0);
-
my @res;
- my $hits = $result->size;
+ my ($result, $hits);
+
+ if ($index_path) {
+ $result = $db->search($cond, 0);
+ $hits = $result->size;
+ } elsif ($index_node_url) {
+ $result = $db->search($cond, 0);
+ $hits = $result->doc_num;
+ } else {
+ die "BUG: unimplemented";
+ }
# for each document in result
for my $i ($offset .. ($offset + $on_page - 1)) {
last if ($i >= $hits);
- my $id = $result->get($i);
- my $doc = $db->get_doc($id, 0);
+ my $doc;
+ if ($index_path) {
+ my $id = $result->get($i);
+ $doc = $db->get_doc($id, 0);
+ } elsif ($index_node_url) {
+ $doc = $result->get_doc($i);
+ } else {
+ die "BUG: unimplemented";
+ }
my $row;
foreach my $c (qw/fid hname sname backupnum fiilename filepath date type size/) {