--- trunk/all2xml.pl 2003/11/29 15:59:19 182 +++ trunk/all2xml.pl 2003/11/29 19:07:00 188 @@ -117,6 +117,7 @@ delete $cache->{swish_data}; delete $cache->{swish_exact_data}; delete $cache->{index_data}; + delete $cache->{index_delimiter}; my @page_fields; # names of fields @@ -164,6 +165,7 @@ my %page_max = (); # default line_delimiter if using my $page_line_delimiter = $config->{indexer}->{$field}->{page_line_delimiter} || '
'; + $cache->{index_delimiter}->{$field} = $config->{indexer}->{$field}->{index_delimiter}; foreach my $x (@{$config->{indexer}->{$field}->{$tag}}) { @@ -177,7 +179,7 @@ my ($s,$se,$d,$i,$il) = (1,0,1,0,0); $s = 0 if (lc($x->{type}) eq "display"); $d = 0 if (lc($x->{type}) eq "swish"); - ($s,$se,$d,$i) = (0,0,0,1) if (lc($x->{type}) eq "index"); + ($s,$se,$d,$i) = (0,1,0,1) if (lc($x->{type}) eq "index"); ($s,$se,$d,$i) = (0,1,0,0) if (lc($x->{type}) eq "swish_exact"); ($s,$se,$d,$i,$il) = (0,1,0,0,1) if (lc($x->{type}) =~ /^lookup/); @@ -371,9 +373,14 @@ } if (! $iterate_by_page) { + my $idel = $x->{index_delimiter}; # fill data in index - foreach my $d (@index_data) { - $index->insert($field, $d, $path); + foreach my $tmp (@index_data) { + my $i = $d = $tmp; + if ($idel && $tmp =~ m/$idel/) { + ($i,$d) = split(/$idel/,$tmp); + } + $index->insert($field, $i, $d, $path); } @index_data = (); } @@ -455,9 +462,15 @@ $xml .= xmlify($field."_swish_exact", unac_string($codepage,'xxbxx '.$swish_exact_data.' xxexx')); } - foreach my $d (@{$cache->{index_data}->{$field}->[$page]}) { - $index->insert($field, $d, $path); -#print STDERR "index $field: $d [$path]\n"; + my $idel = $cache->{index_delimiter}->{$field}; + foreach my $tmp (@{$cache->{index_data}->{$field}->[$page]}) { + my $i = $tmp; + my $d = $tmp; + if ($idel && $tmp =~ m/$idel/) { + ($i,$d) = split(/$idel/,$tmp); + } + $index->insert($field, $i, $d, $path); +#print STDERR "index [$idel] $field: $i --> $d [$path]\n"; } }