From: Heikki Levanto Date: Mon, 9 Dec 2013 14:05:31 +0000 (+0100) Subject: Bit more analysis of fields X-Git-Url: http://lists.indexdata.dk/?a=commitdiff_plain;h=456d56a66cef921c416cfd8452222ce04b492878;p=pazpar2-moved-to-github.git Bit more analysis of fields --- diff --git a/heikki/queries/process2.pl b/heikki/queries/process2.pl index 1a0c495..27ac5b5 100755 --- a/heikki/queries/process2.pl +++ b/heikki/queries/process2.pl @@ -42,18 +42,20 @@ while ( ) { $is_simple = 0; $is_boolean = 1; } - if ( $query =~ /^[("]*([^=; \t]+)=(.*)/ ) { - my ( $k, $v ) = ( $1, $2); - $fields += $count; - $is_simple = 0; - $multifields += $count if ( $v =~ /=/ ); # multiple fields mentioned - if ( $v =~ /=/ && !$is_boolean ) { - print "OOPS: $query\n"; + my $fieldcount = 0; + while ( $query =~ /([^ (=%'"]+)=\s*([^ ]+)/g ) { + if (++$fieldcount >1 ) { + $is_simple = 0; + print "OOPS: $fieldcount $query \n" unless $is_boolean; + $multifields += $count; } - $k = lc($k); - $field{$k} = 0 unless defined($field{$k}); - $field{$k} += $count; - } # field query + my $fld = $1; + $fields += $count; + #print "Field loop: '$fld' $query \n"; + $fld = lc($fld); + $field{$fld} = 0 unless defined($field{$fld}); + $field{$fld} += $count; + } if ($is_simple) { $simplequeries += $count; }