sub xsl_doc {
my ($self) = @_;
- $self->{xsl_doc} = XML::LibXML->load_xml(location => $self->xsl_file);
+ $self->{xsl_doc} = XML::LibXML->load_xml(location => $self->xsl_file)
unless $self->{xsl_doc};
return $self->{xsl_doc};
for my $db_rec (@$db_data) {
my $marc_doc = XML::LibXML->load_xml(string => $db_rec->{marc});
my $result = $self->xsl_sheet->transform($marc_doc);
- my $output = $stylesheet->output_as_chars($result);
+ my $output = $self->xsl_sheet->output_as_chars($result);
my @rows = split(/\n/, $output);
my $first = 1;
}
if ($purpose eq 'search') {
- $field->{search_group} = @parts[1];
- $field->{name} = @parts[2];
- $field->{weight} = @parts[3];
- $field->{value} = join(' ', @parts[4..$#parts]);
+ $field->{search_group} = $parts[1];
+ $field->{name} = $parts[2];
+ $field->{weight} = $parts[3];
+ $field->{value} = join(' ', $parts[4..$#parts]);
} elsif ($purpose eq 'facet') {
- $field->{search_group} = @parts[1];
- $field->{name} = @parts[2];
- $field->{value} = join(' ', @parts[3..$#parts]);
+ $field->{search_group} = $parts[1];
+ $field->{name} = $parts[2];
+ $field->{value} = join(' ', $parts[3..$#parts]);
} elsif ($purpose eq 'filter' || $purpose eq 'sorter') {
- $field->{name} = @parts[1];
- $field->{value} = join(' ', @parts[2..$#parts]);
+ $field->{name} = $parts[1];
+ $field->{value} = join(' ', $parts[2..$#parts]);
}
- }
- push(@$bib_data, $field);
+ push(@$bib_data, $field);
+ }
}
return $bib_data;
use OpenILS::Utils::Fieldmapper;
use OpenILS::Utils::CStoreEditor;
use OpenILS::Elastic::BibSearch;
+use OpenILS::Elastic::BibSearch::XSLT;
my $help;
my $osrf_config = '/openils/conf/opensrf_core.xml';
my $stop_record;
my $modified_since;
my $max_duration;
+my $use_xslt;
my $batch_size = 500;
# Database settings read from ENV by default.
'modified-since=s' => \$modified_since,
'max-duration=s' => \$max_duration,
'batch-size=s' => \$batch_size,
+ 'use-xslt=s' => \$use_xslt,
'db-name=s' => \$db_name,
'db-host=s' => \$db_host,
'db-port=s' => \$db_port,
my $es;
if ($index_class eq 'bib-search') {
- $es = OpenILS::Elastic::BibSearch->new(
- cluster => $cluster,
- index_name => $index_name,
- write_mode => 1
- );
+
+ if ($use_xslt) {
+ $es = OpenILS::Elastic::BibSearch::XSLT->new(
+ cluster => $cluster,
+ index_name => $index_name,
+ write_mode => 1,
+ xsl_file => $use_xslt
+ );
+ } else {
+
+ $es = OpenILS::Elastic::BibSearch->new(
+ cluster => $cluster,
+ index_name => $index_name,
+ write_mode => 1
+ );
+ }
}
if (!$es) {