my @stopwords_removed;
# phrase and exact-qualified indexes shouldn't have stopwords removed
- if ( $index !~ m/phr|ext/ ) {
+ if ( $index !~ m/,(phr|ext)/ ) {
# remove stopwords from operand : parse all stopwords & remove them (case insensitive)
# we use IsAlpha unicode definition, to deal correctly with diacritics.
# Set default structure attribute (word list)
my $struct_attr = q{};
- unless ( $indexes_set || !$index || $index =~ /(st-|phr|ext|wrdl|nb|ns)/ ) {
+ unless ( $indexes_set || !$index || $index =~ /,(st-|phr|ext|wrdl)/ || $index =~ /^(nb|ns)$/ ) {
$struct_attr = ",wrdl";
}
}
if ($auto_truncation){
- unless ( $index =~ /(st-|phr|ext)/ ) {
+ unless ( $index =~ /,(st-|phr|ext)/ ) {
#FIXME only valid with LTR scripts
$operand=join(" ",map{
(index($_,"*")>0?"$_":"$_*")
# loop through all of the records we've retrieved
for ( my $i = $offset ; $i <= $times - 1 ; $i++ ) {
- my $marcrecord = MARC::File::USMARC::decode( $marcresults->[$i] );
+ my $marcrecord = eval { MARC::File::USMARC::decode( $marcresults->[$i] ); };
+ if ( $@ ) {
+ warn "ERROR DECODING RECORD - $@: " . $marcresults->[$i];
+ next;
+ }
+
my $fw = $scan
? undef
: $bibliotag < 10