Changeset 7406 for trunk/gsdl
- Timestamp:
- 2004-05-25T10:05:28+12:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/classify/AZCompactList.pm
r7175 r7406 147 147 q^maxcompact/.*/30^, \$maxcompact, 148 148 q^doclevel/.*/top^, \$doclevel, 149 q^onlyfirst /.*/0^, \$onlyfirst,149 q^onlyfirst^, \$onlyfirst, 150 150 q^freqsort/.*/0^, \$freqsort, 151 151 q^recopt/.*/-1^, \$recopt, # Used in nested metadata such as -metadata Year/Organisation … … 169 169 $self->{'list'} = {}; 170 170 $self->{'listmetavalue'} = {}; 171 $self->{'list_mvpair'} = {}; 171 172 $self->{'reclassify'} = {}; 172 173 $self->{'reclassifylist'} = {}; … … 214 215 $self->{'list'} = {}; 215 216 $self->{'listmetavalue'} = {}; 217 $self->{'list_mvpair'} = {}; 216 218 $self->{'reclassify'} = {}; 217 219 $self->{'reclassifylist'} = {}; … … 234 236 235 237 $metaname =~ s/(\/.*)//; # grab first name in n1/n2/n3 list 238 my @commameta_list = split(/,/, $metaname); 236 239 237 240 if ($self->{'doclevel'} =~ /^top(level)?/i) … … 255 258 = ($thissection ne "") ? "$doc_OID.$thissection" : $doc_OID; 256 259 257 if (defined $self->{'list '}->{$full_doc_OID})260 if (defined $self->{'list_mvpair'}->{$full_doc_OID}) 258 261 { 259 262 print $outhandle "WARNING: AZCompactList::classify called multiple times for $full_doc_OID\n"; … … 261 264 $self->{'list'}->{$full_doc_OID} = []; 262 265 $self->{'listmetavalue'}->{$full_doc_OID} = []; 263 264 my $metavalues = $doc_obj->get_metadata($thissection,$metaname); 266 $self->{'list_mvpair'}->{$full_doc_OID} = []; 267 268 my $metavalues = []; 269 foreach my $cmn (@commameta_list) { 270 my $cmvalues = $doc_obj->get_metadata($thissection,$cmn); 271 push(@$metavalues,@$cmvalues) if (defined $cmvalues); 272 } 273 265 274 my $metavalue; 266 275 foreach $metavalue (@$metavalues) … … 301 310 $formatted_metavalue=""; 302 311 } 312 313 my $mv_pair = { 'mv' => $metavalue, 'fmv' => $formatted_metavalue }; 303 314 push(@{$self->{'list'}->{$full_doc_OID}},$formatted_metavalue); 304 315 push(@{$self->{'listmetavalue'}->{$full_doc_OID}} ,$metavalue); 316 push(@{$self->{'list_mvpair'}->{$full_doc_OID}},$mv_pair); 317 305 318 306 319 last if ($self->{'onlyfirst'}); … … 324 337 map 325 338 { 326 my $mv; 327 foreach $mv (@{$self->{'listmetavalue'}->{$_}} ) 339 foreach my $mvp (@{$self->{'list_mvpair'}->{$_}} ) 328 340 { 329 $mtfreq{$mv}++; 341 ### print STDERR "*** plain mv = $mvp->{'mv'}\n"; 342 ### print STDERR "*** format mv = $mvp->{'fmv'}\n"; 343 344 my $metavalue = $mvp->{'mv'}; 345 $mtfreq{$metavalue}++; 330 346 } 331 347 } @$classlist_ref; … … 336 352 my $i = 1; 337 353 my $metavalue; 338 foreach $metavalue (@{$self->{'listmetavalue'}->{$_}})354 foreach my $mvp (@{$self->{'list_mvpair'}->{$_}}) 339 355 { 356 my $metavalue = $mvp->{'mv'}; 357 my $cs_metavalue = $mvp->{'mv'}; # case sensative 340 358 if ($mtfreq{$metavalue} >= $self->{'mingroup'}) 341 359 { 360 ### print STDERR "*** pushing on $cs_metavalue\n"; 361 342 362 push(@multiple_classlist,[$_,$i,$metavalue]); 343 363 } 344 364 else 345 365 { 346 push(@single_classlist,[$_,$ metavalue]);366 push(@single_classlist,[$_,$cs_metavalue]); 347 367 $metavalue =~ tr/[A-Z]/[a-z]/; 348 368 $self->{'reclassifylist'}->{"Metavalue_$i.$_"} = $metavalue; … … 437 457 if (!$formatted_node) {next;} 438 458 } 439 459 440 460 $formatted_node = $self->format_metadata_for_sorting($self->{'metaname'}, $formatted_node); 441 461 … … 470 490 foreach $dm_pair (@$multiple_cl_ref) 471 491 { 472 my ($doc_OID,$mdoffset,$metavalue ) = @$dm_pair;492 my ($doc_OID,$mdoffset,$metavalue,$cs_metavalue) = @$dm_pair; 473 493 my $listclassobj; 474 494 … … 582 602 my $self = shift (@_); 583 603 584 my @classlist =keys %{$self->{'list '}}; # list all doc oids604 my @classlist =keys %{$self->{'list_mvpair'}}; # list all doc oids 585 605 586 606 my ($single_cl_ref,$multiple_cl_ref) = $self->reinit(\@classlist); … … 684 704 $title =~ s/^\W+//g; # remove leading non-word chars 685 705 686 # only want first character for classification706 # only want first character for classification 687 707 $title =~ m/^(.)/; 688 708 if ($1) {
Note:
See TracChangeset
for help on using the changeset viewer.