- Timestamp:
- 2011-08-24T16:21:08+12:00 (13 years ago)
- Location:
- main/trunk/greenstone2/perllib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/buildConfigxml.pm
r24070 r24464 40 40 # A mapping hash to resolve name discrepancy between gs2 and gs3. 41 41 my $nameMap = {"numDocs" => "numdocs", 42 "buildType" => "buildtype" 42 "buildType" => "buildtype", 43 "orthogonalBuildTypes" => "orthogonalbuildtypes" 43 44 }; 44 45 … … 50 51 my $currentLocation = ""; 51 52 my $stringexp = q/^(buildType|numDocs)$/; 52 53 my $arrayexp = q/^(orthogonalBuildTypes)$/; 54 53 55 my $indexmap_name = ""; 54 56 my $haveindexfields = 0; … … 95 97 96 98 #@ handling block metadataList 97 if (defined $name and $name =~ /$stringexp/){99 if (defined $name && (($name =~ m/$stringexp/) || ($name =~ m/$arrayexp/))) { 98 100 $currentLocation = $name; 99 101 # the value will be retrieved later in Text sub … … 112 114 } 113 115 else { 116 # mgpp or lucene 114 117 $indexmap_name = "indexfieldmap"; 115 118 $haveindexfields = 1; … … 145 148 if (defined $currentLocation) { 146 149 #@ Handling block metadataList(numDocs, buildType) 147 if ($currentLocation =~ /$stringexp/){150 if ($currentLocation =~ /$stringexp/) { 148 151 #print $currentLocation; 149 152 my $key = $nameMap->{$currentLocation}; … … 151 154 undef $currentLocation; 152 155 } 156 elsif ($currentLocation =~ /$arrayexp/) { 157 #print $currentLocation; 158 my $key = $nameMap->{$currentLocation}; 159 push(@{$data->{$key}},$_); 160 undef $currentLocation; 161 } 162 153 163 } 154 164 } … … 159 169 print "NumDocs = ".$data->{'numdocs'}."\n" if (defined $data->{'numdocs'}); 160 170 print "BuildType = ".$data->{'buildtype'}."\n" if (defined $data->{'buildtype'}); 171 print "OrthogonalBuildTypes = ".join(",",@{$data->{'orthogonalbuildtypes'}})."\n" if (defined $data->{'orthogonalbuildtypes'}); 161 172 print "IndexMap = ". join(" ",@{$data->{'indexmap'}})."\n" if (defined $data->{'indexmap'}); 162 173 print "IndexFieldMap = ". join(" ",@{$data->{'indexfieldmap'}})."\n" if (defined $data->{'indexfieldmap'}); … … 190 201 } 191 202 192 # Create the buildConfig.xml file for a specific collection 193 sub write_cfg_file { 194 # this sub is called in make_auxiliary_files() in basebuilder.pm 195 # the received args: $buildoutfile - destination file: buildConfig.xml 196 # $buildcfg - all build options, 197 # $collectcfg - contents of collectionConfig.xml read in by read_cfg_file sub in buildConfigxml.pm. 198 my ($buildoutfile, $buildcfg, $collectcfg) = @_; 199 my $line = []; 200 201 if (!open (COLCFG, ">$buildoutfile")) { 202 print STDERR "buildConfigxml::write_cfg_file couldn't write the build config file $buildoutfile\n"; 203 die; 204 } 205 206 &write_line('COLCFG', ["<buildConfig xmlns:gsf=\"http://www.greenstone.org/greenstone3/schema/ConfigFormat\">"]); 207 208 # output building metadata to build config file 209 my $buildtype; 203 sub search_and_retrieve_settings 204 { 205 my ($buildcfg,$collectcfg) = @_; 206 207 my $settings = {}; 208 210 209 if (defined $buildcfg->{"buildtype"}) { 211 $ buildtype= $buildcfg->{"buildtype"};210 $settings->{'buildtype'} = $buildcfg->{"buildtype"}; 212 211 } else { 213 $buildtype = "mgpp"; 214 } 215 my $numdocs; 212 $settings->{'buildtype'} = "mgpp"; 213 } 214 my $buildtype = $settings->{'buildtype'}; 215 216 if (defined $collectcfg->{"orthogonalbuildtypes"}) { 217 # Note the use of collectcfg, not bulidcfg 218 $settings->{'orthogonalbuildtypes'} = $collectcfg->{"orthogonalbuildtypes"}; 219 } else { 220 $settings->{'orthogonalbuildtypes '}= []; 221 } 222 216 223 if (defined $buildcfg->{"numdocs"}) { 217 $numdocs = $buildcfg->{"numdocs"}; 218 } 219 &write_line('COLCFG', ["<metadataList>"]); 220 &write_line('COLCFG', ["<metadata name=\"numDocs\">", $numdocs, "</metadata>"]); 221 &write_line('COLCFG', ["<metadata name=\"buildType\">", $buildtype, "</metadata>"]); 222 if (defined $buildcfg->{'indexstem'}) { 223 &write_line('COLCFG', ["<metadata name=\"indexStem\">", $buildcfg->{"indexstem"}, "</metadata>"]); 224 } 225 if (defined $buildcfg->{'infodbtype'}) { 226 &write_line('COLCFG', ["<metadata name=\"infodbType\">", $buildcfg->{"infodbtype"}, "</metadata>"]); 227 } 228 if (defined $buildcfg->{'earliestdatestamp'}) { 229 &write_line('COLCFG', ["<metadata name=\"earliestdatestamp\">", $buildcfg->{"earliestdatestamp"}, "</metadata>"]); 230 } 231 232 &write_line('COLCFG', ["</metadataList>"]); 224 $settings->{'numdocs'} = $buildcfg->{"numdocs"}; 225 } 226 else { 227 $settings->{'numdocs'} = 0; 228 } 233 229 234 230 my $service_type = "MGPP"; … … 238 234 $service_type = "Lucene"; 239 235 } 240 241 # output serviceRackList 242 &write_line('COLCFG', ["<serviceRackList>"]); 243 244 # do the search service 245 &write_line('COLCFG', ["<serviceRack name=\"GS2", $service_type, "Search\">"]); 246 if (defined $buildcfg->{'indexstem'}) { 247 my $indexstem = $buildcfg->{'indexstem'}; 248 &write_line('COLCFG', ["<indexStem name=\"", $indexstem, "\" />"]); 249 } 250 if (defined $buildcfg->{'infodbtype'}) { 251 my $infodbtype = $buildcfg->{'infodbtype'}; 252 &write_line('COLCFG', ["<databaseType name=\"", $infodbtype, "\" />"]); 253 } 254 255 #indexes 256 # maps index name to shortname 257 my $indexmap = {}; 258 # keeps the order for indexes 259 my @indexlist = (); 260 236 $settings->{'service_type'} = $service_type; 237 238 239 if (defined $buildcfg->{"infodbtype"}) { 240 $settings->{'infodbtype'} = $buildcfg->{'infodbtype'}; 241 } 242 else { 243 $settings->{'infodbtype'} = "gdbm"; 244 } 245 246 247 #-- 248 # indexes 249 #-- 250 251 my $indexmap = {}; # maps index name to shortname 252 my $indexlist = []; # keeps the order for indexes 261 253 my $defaultindex = ""; 262 my $first = 1; 263 my $maptype = "indexfieldmap"; 264 if ($buildtype eq "mg") { 265 $maptype = "indexmap"; 266 } 267 268 #map {print $_."\n"} keys %$buildcfg; 254 my $maptype = ($buildtype eq "mg") ? "indexmap" : "indexfieldmap"; 269 255 270 256 if (defined $buildcfg->{$maptype}) { 257 my $first = 1; 271 258 my $indexmap_t = $buildcfg->{$maptype}; 272 273 my ($k, $v) = $i =~ /^(.*)\-\>(.*)$/;259 foreach my $i (@$indexmap_t) { 260 my ($k, $v) = $i =~ /^(.*)\-\>(.*)$/; 274 261 $indexmap->{$k} = $v; 275 push @ indexlist, $k;262 push @$indexlist, $k; 276 263 if ($first) { 277 264 $defaultindex = $v; 278 265 $first = 0; 279 } 280 } 281 # now if the user has assigned a default index, we use it 266 } 267 } 268 # now if the user has assigned a default index, we use it 282 269 if (defined $collectcfg->{"defaultindex"}) { 283 $defaultindex = $indexmap->{$collectcfg->{"defaultindex"}}; 284 } 285 270 $defaultindex = $indexmap->{$collectcfg->{"defaultindex"}}; 271 } 286 272 } else { 287 273 print STDERR "$maptype not defined"; 288 } 289 #for each index in indexList, write them out 290 &write_line('COLCFG', ["<indexList>"]); 291 foreach my $i (@indexlist) { 292 my $index = $indexmap->{$i}; 293 &write_line('COLCFG', ["<index name=\"", $i, "\" ", "shortname=\"", $index, "\" />"]); 294 } 295 &write_line('COLCFG', ["</indexList>"]); 296 297 298 #$defaultindex = "ZZ" if (!$defaultindex); # index allfields by default 299 if($defaultindex) { 300 &write_line('COLCFG', ["<defaultIndex shortname=\"", $defaultindex, "\" />"]); 301 } 302 303 304 # do indexOptionList 305 if ($buildtype eq "mg" || $buildtype eq "mgpp") { 306 &write_line('COLCFG', ["<indexOptionList>"]); 307 my $stemindexes = 3; # default is stem and casefold 308 if (defined $buildcfg->{'stemindexes'} && $buildcfg->{'stemindexes'} =~ /^\d+$/ ) { 309 $stemindexes = $buildcfg->{'stemindexes'}; 310 } 311 &write_line('COLCFG', ["<indexOption name=\"stemIndexes\" value=\"", $stemindexes, "\" />"]); 312 313 my $maxnumeric = 4; # default 314 if (defined $buildcfg->{'maxnumeric'} && $buildcfg->{'maxnumeric'} =~ /^\d+$/) { 315 $maxnumeric = $buildcfg->{'maxnumeric'}; 316 } 317 &write_line('COLCFG', ["<indexOption name=\"maxnumeric\" value=\"", $maxnumeric, "\" />"]); 318 &write_line('COLCFG', ["</indexOptionList>"]); 319 } 320 321 # levelList 274 } 275 276 $settings->{'defaultindex'} = $defaultindex; 277 $settings->{'indexmap'} = $indexmap; 278 $settings->{'indexlist'} = $indexlist; 279 280 #-- 281 # default lang 282 #-- 283 $settings->{'default_lang'} = ""; 284 $settings->{'default_lang_short'} = ""; 285 286 if (defined $buildcfg->{"languagemap"}) { 287 my $langmap_t = $buildcfg->{"languagemap"}; 288 if ((defined $langmap_t) && (scalar(@$langmap_t)>=1)) { 289 my $l = $langmap_t->[0]; 290 my ($k, $v) = $l =~ m/^(.*)\-\>(.*)$/; 291 $settings->{'default_lang'} = $k; #name 292 $settings->{'default_lang_short'} = $v; #short name 293 } 294 295 # now if the user has assigned a default language (as "en", "ru" etc.) 296 if (defined $collectcfg->{"defaultlanguage"}) { 297 $settings->{'default_lang'} = $collectcfg->{"defaultlanguage"}; 298 # what about default_lang_short ?? #### 299 } 300 } 301 302 # default subcol 303 $settings->{'default_subcol'} = ""; 304 if (defined $buildcfg->{'subcollectionmap'}) { 305 my $subcolmap_t = $buildcfg->{'subcollectionmap'}; 306 if ((defined $subcolmap_t) && (scalar(@$subcolmap_t)>=1)) { 307 my $l = $subcolmap_t->[0]; 308 my ($k, $v) = $l =~ m/^(.*)\-\>(.*)$/; 309 310 $settings->{'default_subcol'} = $v; 311 } 312 } 313 314 315 #-- 316 # indexstem 317 #-- 318 if (defined $buildcfg->{'indexstem'}) { 319 $settings->{'indexstem'} = $buildcfg->{'indexstem'}; 320 } 321 322 #-- 323 # levelList 324 #-- 325 322 326 my $levelmap = {}; 323 my @levellist = ();327 my $levellist = []; 324 328 my $default_search_level = "Doc"; 325 329 my $default_retrieve_level = "Doc"; 326 330 my $default_db_level = "Doc"; 327 $first = 1; 331 328 332 if ($buildtype eq "mgpp" || $buildtype eq "lucene") { 329 333 if (defined $buildcfg->{'levelmap'}) { 334 my $first = 1; 335 330 336 my $levelmap_t = $buildcfg->{'levelmap'}; 331 337 foreach my $l (@$levelmap_t) { 332 338 my ($key, $val) = $l =~ /^(.*)\-\>(.*)$/; 333 339 $levelmap->{$key} = $val; 334 push @ levellist, $key;340 push @$levellist, $key; 335 341 if ($first) { 336 342 # let default search level follow the first level in the level list … … 356 362 } 357 363 } 364 $settings->{'levelmap'} = $levelmap; 365 $settings->{'levellist'} = $levellist; 366 $settings->{'default_search_level'} = $default_search_level; 367 $settings->{'default_retrieve_level'} = $default_retrieve_level; 368 $settings->{'default_db_level'} = $default_db_level; 369 370 371 return $settings; 372 } 373 374 375 sub write_search_servicerack 376 { 377 my ($buildcfg,$settings) = @_; 378 379 my $buildtype = $settings->{'buildtype'}; 380 my $infodbtype = $settings->{'infodbtype'}; 381 my $service_type = $settings->{'service_type'}; 382 383 # do the search service 384 &write_line('COLCFG', ["<serviceRack name=\"GS2", $service_type, "Search\">"]); 385 if (defined $buildcfg->{'indexstem'}) { 386 my $indexstem = $buildcfg->{'indexstem'}; 387 &write_line('COLCFG', ["<indexStem name=\"", $indexstem, "\" />"]); 388 } 389 if (defined $buildcfg->{'infodbtype'}) { 390 &write_line('COLCFG', ["<databaseType name=\"", $infodbtype, "\" />"]); 391 } 392 393 #indexes 394 my $indexmap = $settings->{'indexmap'}; 395 my $indexlist = $settings->{'indexlist'}; 396 my $defaultindex = $settings->{'defaultindex'}; 397 398 #for each index in indexList, write them out 399 &write_line('COLCFG', ["<indexList>"]); 400 foreach my $i (@$indexlist) { 401 my $index = $indexmap->{$i}; 402 &write_line('COLCFG', ["<index name=\"", $i, "\" ", "shortname=\"", $index, "\" />"]); 403 } 404 &write_line('COLCFG', ["</indexList>"]); 405 406 407 #$defaultindex = "ZZ" if (!$defaultindex); # index allfields by default 408 if ($defaultindex) { 409 &write_line('COLCFG', ["<defaultIndex shortname=\"", $defaultindex, "\" />"]); 410 } 411 412 413 # do indexOptionList 414 if ($buildtype eq "mg" || $buildtype eq "mgpp") { 415 &write_line('COLCFG', ["<indexOptionList>"]); 416 my $stemindexes = 3; # default is stem and casefold 417 if (defined $buildcfg->{'stemindexes'} && $buildcfg->{'stemindexes'} =~ /^\d+$/ ) { 418 $stemindexes = $buildcfg->{'stemindexes'}; 419 } 420 &write_line('COLCFG', ["<indexOption name=\"stemIndexes\" value=\"", $stemindexes, "\" />"]); 421 422 my $maxnumeric = 4; # default 423 if (defined $buildcfg->{'maxnumeric'} && $buildcfg->{'maxnumeric'} =~ /^\d+$/) { 424 $maxnumeric = $buildcfg->{'maxnumeric'}; 425 } 426 &write_line('COLCFG', ["<indexOption name=\"maxnumeric\" value=\"", $maxnumeric, "\" />"]); 427 &write_line('COLCFG', ["</indexOptionList>"]); 428 } 429 430 #-- 431 # levelList 432 #-- 433 my $levelmap = $settings->{'levelmap'}; 434 my $levellist = $settings->{'levellist'}; 435 my $default_search_level = $settings->{'default_search_level'}; 436 my $default_retrieve_level = $settings->{'default_retrieve_level'}; 437 my $default_db_level = $settings->{'default_db_level'}; 438 358 439 #for each level in levelList, write them out 359 440 if ($buildtype ne "mg") { 360 361 foreach my $lv (@levellist) {362 my $level = $levelmap->{$lv};363 364 365 441 &write_line('COLCFG', ["<levelList>"]); 442 foreach my $lv (@$levellist) { 443 my $level = $levelmap->{$lv}; 444 &write_line('COLCFG', ["<level name=\"", $lv, "\" shortname=\"", $level, "\" />"]); 445 } 446 &write_line('COLCFG', ["</levelList>"]); 366 447 } 367 448 # add in defaultLevel as the same level as indexLevelList, making the reading job easier … … 389 470 390 471 # do indexLanguageList [in collect.cfg: languages; in build.cfg: languagemap] 391 $first = 1; 392 my $default_lang = ""; 393 my $default_lang_short = ""; 472 my $default_lang = $settings->{'default_lang'}; 473 my $default_lang_short = $settings->{'default_lang_short'}; 394 474 if (defined $buildcfg->{"languagemap"}) { 395 475 &write_line('COLCFG', ["<indexLanguageList>"]); … … 400 480 401 481 &write_line('COLCFG', ["<indexLanguage name=\"", $k, "\" shortname=\"", $v, "\" />"]); 402 if ($first) {403 $default_lang = $k; #name404 $default_lang_short = $v; #shortname405 $first = 0;406 }407 482 } 408 483 409 484 &write_line('COLCFG', ["</indexLanguageList>"]); 410 # now if the user has assigned a default language (as "en", "ru" etc.) 411 if (defined $collectcfg->{"defaultlanguage"}) { 412 $default_lang = $collectcfg->{"defaultlanguage"}; 413 } 485 414 486 &write_line('COLCFG', ["<defaultIndexLanguage name=\"", $default_lang, "\" shortname=\"", $default_lang_short, "\" />"]); 415 487 } 416 488 417 418 489 # do indexSubcollectionList 419 my $default_subcol = "";# make it in sub scope to be used in the concatenation 490 my $default_subcol = $settings->{'default_subcol'}; 491 420 492 if (defined $buildcfg->{'subcollectionmap'}) { 421 493 &write_line('COLCFG', ["<indexSubcollectionList>"]); 422 494 my $subcolmap = {}; 423 495 my @subcollist = (); 424 $first = 1; 496 425 497 my $subcolmap_t = $buildcfg->{'subcollectionmap'}; 426 498 foreach my $l (@$subcolmap_t) { … … 428 500 $subcolmap->{$k} = $v; 429 501 push @subcollist, $k; 430 if ($first) {431 $default_subcol = $v;432 $first = 0;433 }434 502 } 503 435 504 foreach my $sl (@subcollist) { 436 505 my $subcol = $subcolmap->{$sl}; … … 445 514 &write_line('COLCFG', ["</serviceRack>"]); 446 515 516 } 517 518 519 sub write_orthogonalsearch_serviceracks 520 { 521 my ($buildcfg,$settings) = @_; 522 523 my $infodbtype = $settings->{'infodbtype'}; 524 525 my $orthogonalbuildtypes = $settings->{'orthogonalbuildtypes'}; 526 527 foreach my $obt (@$orthogonalbuildtypes) { 528 $obt =~ s/^(.)/\u$1/; # capitialize initial letter 529 $obt =~ s/-(.)/\u$1/g; # change any hyphenated words to cap next letter 530 531 &write_line('COLCFG', ["<serviceRack name=\"GS2", $obt, "Search\">"]); 532 533 &write_line('COLCFG',["<databaseType name=\"",$infodbtype,"\" />"]); 534 &write_line('COLCFG', ["</serviceRack>"]); 535 } 536 } 537 538 539 540 sub write_retrieve_servicerack 541 { 542 my ($buildcfg,$settings) = @_; 543 544 my $buildtype = $settings->{'buildtype'}; 545 my $infodbtype = $settings->{'infodbtype'}; 546 547 my $service_type = $settings->{'service_type'}; 548 447 549 # do the retrieve service 448 550 &write_line('COLCFG', ["<serviceRack name=\"GS2", $service_type, "Retrieve\">"]); … … 450 552 # do default index 451 553 if (defined $buildcfg->{"languagemap"}) { 554 my $default_lang = $settings->{'default_lang'}; 452 555 &write_line('COLCFG', ["<defaultIndexLanguage shortname=\"", $default_lang, "\" />"]); 453 556 } 454 557 if (defined $buildcfg->{'subcollectionmap'}) { 558 my $default_subcol = $settings->{'default_subcol'}; 455 559 &write_line('COLCFG', ["<defaultIndexSubcollection shortname=\"", $default_subcol, "\" />"]); 456 560 } 457 561 if ($buildtype eq "mg") { 562 my $defaultindex = $settings->{'defaultindex'}; 458 563 &write_line('COLCFG', ["<defaultIndex shortname=\"", $defaultindex, "\" />"]); 459 564 } … … 464 569 } 465 570 if ($buildtype eq "mgpp" || $buildtype eq "lucene") { 571 my $default_retrieve_level = $settings->{'default_retrieve_level'}; 466 572 &write_line('COLCFG', ["<defaultLevel shortname=\"", $default_retrieve_level, "\" />"]); 467 573 } 468 574 if (defined $buildcfg->{'infodbtype'}) { 469 my $infodbtype = $buildcfg->{'infodbtype'};470 575 &write_line('COLCFG', ["<databaseType name=\"", $infodbtype, "\" />"]); 471 576 } 472 577 473 578 &write_line('COLCFG', ["</serviceRack>"]); 579 580 } 581 582 583 # Create the buildConfig.xml file for a specific collection 584 sub write_cfg_file { 585 # this sub is called in make_auxiliary_files() in basebuilder.pm 586 # the received args: $buildoutfile - destination file: buildConfig.xml 587 # $buildcfg - all build options, 588 # $collectcfg - contents of collectionConfig.xml read in by read_cfg_file sub in buildConfigxml.pm. 589 my ($buildoutfile, $buildcfg, $collectcfg) = @_; 590 my $line = []; 591 592 if (!open (COLCFG, ">$buildoutfile")) { 593 print STDERR "buildConfigxml::write_cfg_file couldn't write the build config file $buildoutfile\n"; 594 die; 595 } 596 597 my $settings = search_and_retrieve_settings($buildcfg,$collectcfg); 598 599 my $buildtype = $settings->{'buildtype'}; 600 my $orthogonalbuildtypes = $settings->{'orthogonalbuildtypes'}; 601 my $numdocs = $settings->{'numdocs'}; 602 603 &write_line('COLCFG', ["<buildConfig xmlns:gsf=\"http://www.greenstone.org/greenstone3/schema/ConfigFormat\">"]); 604 605 # output building metadata to build config file 606 &write_line('COLCFG', ["<metadataList>"]); 607 &write_line('COLCFG', ["<metadata name=\"numDocs\">", $numdocs, "</metadata>"]); 608 &write_line('COLCFG', ["<metadata name=\"buildType\">", $buildtype, "</metadata>"]); 609 foreach my $obt (@$orthogonalbuildtypes) { 610 &write_line('COLCFG', ["<metadata name=\"orthogonalBuildTypes\">", $obt, "</metadata>"]); 611 } 612 613 if (defined $buildcfg->{'indexstem'}) { 614 &write_line('COLCFG', ["<metadata name=\"indexStem\">", $buildcfg->{"indexstem"}, "</metadata>"]); 615 } 616 if (defined $buildcfg->{'infodbtype'}) { 617 &write_line('COLCFG', ["<metadata name=\"infodbType\">", $buildcfg->{"infodbtype"}, "</metadata>"]); 618 } 619 if (defined $buildcfg->{'earliestdatestamp'}) { 620 &write_line('COLCFG', ["<metadata name=\"earliestdatestamp\">", $buildcfg->{"earliestdatestamp"}, "</metadata>"]); 621 } 622 623 &write_line('COLCFG', ["</metadataList>"]); 624 625 # output serviceRackList 626 &write_line('COLCFG', ["<serviceRackList>"]); 627 628 write_search_servicerack($buildcfg,$settings); 629 630 # add in orthogonalbuildtypes 631 write_orthogonalsearch_serviceracks($buildcfg,$settings); 632 633 write_retrieve_servicerack($buildcfg,$settings); 474 634 475 635 # do the browse service -
main/trunk/greenstone2/perllib/colcfg.pm
r23939 r24464 46 46 # {'textcompress'}->string 47 47 # {'buildtype'}->string 48 # {'orthogonalbuildtypes'}->array of strings 48 49 # {'maxnumeric'}->string 49 50 # {'separate_cjk'}->string … … 114 115 # {'builddate'}->string 115 116 # {'buildtype'}->string 117 # {'orthogonalbuildtypes'}->array of strings 116 118 # {'metadata'}->array of strings 117 119 # {'languages'}->array of strings … … 167 169 q/^(infodbtype|creator|public|defaultindex|importdir|/ . 168 170 q/archivedir|cachedir|builddir|removeold|/ . 169 q/textcompress|buildtype| no_text|keepold|gzip|/ .171 q/textcompress|buildtype|othogonalbuildtypes|no_text|keepold|gzip|/ . 170 172 q/verbosity|remove_empty_classifications|OIDtype|OIDmetadata|/ . 171 173 q/groupsize|maxdocs|debug|mode|saveas|/ . … … 174 176 q/no_strip_html|index|sections_index_document_metadata|/ . 175 177 q/store_metadata_coverage)$/, 176 q/(maintainer|languages|indexsubcollections| / .178 q/(maintainer|languages|indexsubcollections|orthogonalbuildtypes/ . 177 179 q/indexes|indexoptions|dontbuild|dontgdbm|mirror|levels|plugout|/ . 178 180 q/searchtype|searchtypes)$/, … … 195 197 q/maxnumeric|languagemetadata/ . 196 198 q/no_strip_html|index|sections_index_document_metadata)$/, 197 q/^(maintainer|languages|indexsubcollections| / .199 q/^(maintainer|languages|indexsubcollections|orthogonalbuildtypes/ . 198 200 q/indexes|indexoptions|dontbuild|dontgdbm|mirror|levels|/. 199 201 q/searchtype|searchtypes)$/, … … 226 228 return &cfgread::read_cfg_file ($filename, 227 229 q/^(earliestdatestamp|infodbtype|builddate|buildtype|numdocs|numsections|numwords|numbytes|maxnumeric|textlevel|indexstem|stemindexes|separate_cjk)$/, 228 q/^(indexmap|subcollectionmap|languagemap| notbuilt|indexfields|indexfieldmap|indexlevels|levelmap)$/);230 q/^(indexmap|subcollectionmap|languagemap|orthogonalbuildtypes|notbuilt|indexfields|indexfieldmap|indexlevels|levelmap)$/); 229 231 230 232 } … … 236 238 &cfgread::write_cfg_file($filename, $data, 237 239 q/^(earliestdatestamp|infodbtype|builddate|buildtype|numdocs|numsections|numwords|numbytes|maxnumeric|textlevel|indexstem|stemindexes|separate_cjk)$/, 238 q/^(indexmap|subcollectionmap|languagemap| notbuilt|indexfields|indexfieldmap|indexlevels|levelmap)$/);240 q/^(indexmap|subcollectionmap|languagemap|orthogonalbuildtypes|notbuilt|indexfields|indexfieldmap|indexlevels|levelmap)$/); 239 241 } 240 242 -
main/trunk/greenstone2/perllib/collConfigxml.pm
r24055 r24464 57 57 "languageMetadata" => "languagemetadata", 58 58 "buildType" => "buildtype", 59 "buildOption" => "buildOption" 59 "orthogonalBuildTypes" => "orthogonalbuildtypes", 60 "buildOption" => "buildOption" 60 61 }; 61 62 # A hash structure which is returned by sub read_cfg_file. … … 79 80 # ("plugin", "option") 80 81 my $currentIndex = 0; 81 my $arrayexp = q/^(index|level|indexSubcollection|indexLanguage )$/;82 my $arrayexp = q/^(index|level|indexSubcollection|indexLanguage|orthogonalBuildTypes)$/; 82 83 my $arrayarrayexp= q/^(plugin|classifier)$/; #|buildOption)$/; 83 84 my $hashexp = q/^(subcollection)$/; # add other element names that should be represented by hash expressions here … … 129 130 my $value = $_{'value'}; 130 131 my $type = $_{'type'}; 132 my $orthogonal = $_{'orthogonal'}; 131 133 132 134 # for subcollections … … 169 171 170 172 #@ Handling indexer: mgpp/mg/lucene; stringexp 173 #@ Handling orthogonal indexers: audioDB; arrayexp 171 174 elsif ($element eq "search") { 172 $data->{'buildtype'} = $type; 175 if ((defined $orthogonal) && ($orthogonal =~ m/^(true|on|1)$/i)) { 176 push(@{$data->{'orthogonalbuildtypes'}},$type); 177 } 178 else { 179 $data->{'buildtype'} = $type; 180 } 173 181 } 174 182 175 176 177 178 179 183 elsif ($element eq "store_metadata_coverage") 184 { 185 ## print STDERR "*&*&*&*&*& HERE &*&*&*&*&*&*"; 186 $data->{'store_metadata_coverage'} = $value; 187 } 180 188 181 189 #@ Handling searchtype: plain,form; arrayexp … … 363 371 print STDERR "*** default level: ".$data->{"defaultlevel"}."\n" if (defined $data->{"defaultlevel"}); 364 372 print STDERR "*** build type: ".$data->{"buildtype"}."\n" if (defined $data->{"buildtype"}); 373 print STDERR "*** orthogonal build types: ".join(",",$data->{"orthogonalbuildtypes"})."\n" if (defined $data->{"orthogonalbuildtypes"}); 365 374 print STDERR "*** search types: \n"; 366 375 print STDERR join(",",@{$data->{"searchtype"}})."\n" if (defined $data->{"searchtype"});
Note:
See TracChangeset
for help on using the changeset viewer.