Lines 153-166
sub build_query_compat {
Link Here
|
153 |
my $query; |
153 |
my $query; |
154 |
my $query_str = ''; |
154 |
my $query_str = ''; |
155 |
my $search_param_query_str = ''; |
155 |
my $search_param_query_str = ''; |
156 |
my $limits = (); |
156 |
my $limits = $self->_fix_limit_special_cases($orig_limits); |
157 |
if ( $scan ) { |
157 |
if ( $scan ) { |
158 |
($query, $query_str) = $self->_build_scan_query( $operands, $indexes ); |
158 |
($query, $query_str) = $self->_build_scan_query( $operands, $indexes ); |
159 |
$search_param_query_str = $query_str; |
159 |
$search_param_query_str = $query_str; |
160 |
} else { |
160 |
} else { |
161 |
my @sort_params = $self->_convert_sort_fields(@$sort_by); |
161 |
my @sort_params = $self->_convert_sort_fields(@$sort_by); |
162 |
my @index_params = $self->_convert_index_fields(@$indexes); |
162 |
my @index_params = $self->_convert_index_fields(@$indexes); |
163 |
my $limits = $self->_fix_limit_special_cases($orig_limits); |
|
|
164 |
if ( $params->{suppress} ) { push @$limits, "suppress:false"; } |
163 |
if ( $params->{suppress} ) { push @$limits, "suppress:false"; } |
165 |
# Merge the indexes in with the search terms and the operands so that |
164 |
# Merge the indexes in with the search terms and the operands so that |
166 |
# each search thing is a handy unit. |
165 |
# each search thing is a handy unit. |
Lines 796-802
Transform limit strings to Elasticsearch filters
Link Here
|
796 |
|
795 |
|
797 |
sub _build_limit_filters { |
796 |
sub _build_limit_filters { |
798 |
my ( $self, $limits ) = @_; |
797 |
my ( $self, $limits ) = @_; |
799 |
my @res; |
798 |
|
|
|
799 |
my %facets; |
800 |
foreach my $s (@$limits) { |
800 |
foreach my $s (@$limits) { |
801 |
next if $s eq ''; |
801 |
next if $s eq ''; |
802 |
my ( $field, $term ) = $s =~ /^\s*([\w,-]*?):(.*)/; |
802 |
my ( $field, $term ) = $s =~ /^\s*([\w,-]*?):(.*)/; |
Lines 804-817
sub _build_limit_filters {
Link Here
|
804 |
|
804 |
|
805 |
my ($conv) = $self->_convert_index_fields($field); |
805 |
my ($conv) = $self->_convert_index_fields($field); |
806 |
my $facet_name = $conv->{field} . '__facet'; |
806 |
my $facet_name = $conv->{field} . '__facet'; |
807 |
$facet_name =~ s/^mc-//; |
807 |
$facets{$facet_name} //= []; |
808 |
push @res, { |
808 |
push @{ $facets{$facet_name} }, $term; |
809 |
term => { |
|
|
810 |
$facet_name => $term |
811 |
} |
812 |
}; |
813 |
} |
809 |
} |
814 |
|
810 |
|
|
|
811 |
my @res = map { |
812 |
my $name = ($_ =~ s/^mc-//r); |
813 |
{ terms => { $name => $facets{$_} } } |
814 |
} sort keys %facets; |
815 |
|
815 |
return \@res; |
816 |
return \@res; |
816 |
} |
817 |
} |
817 |
|
818 |
|
818 |
- |
|
|