View | Details | Raw Unified | Return to bug 27770
Collapse All | Expand All

(-)a/Koha/SearchEngine/Elasticsearch.pm (+1 lines)
Lines 104-109 sub get_elasticsearch { Link Here
104
        $self->{elasticsearch} = Search::Elasticsearch->new(
104
        $self->{elasticsearch} = Search::Elasticsearch->new(
105
            $self->get_elasticsearch_params()
105
            $self->get_elasticsearch_params()
106
        );
106
        );
107
        $self->{es_version} = $self->{elasticsearch}->info->{version}{number};
107
    }
108
    }
108
    return $self->{elasticsearch};
109
    return $self->{elasticsearch};
109
}
110
}
(-)a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm (-1 / +7 lines)
Lines 44-49 use JSON; Link Here
44
use List::MoreUtils qw( each_array );
44
use List::MoreUtils qw( each_array );
45
use Modern::Perl;
45
use Modern::Perl;
46
use URI::Escape qw( uri_escape_utf8 );
46
use URI::Escape qw( uri_escape_utf8 );
47
use version;
47
48
48
use C4::Context;
49
use C4::Context;
49
use Koha::Exceptions;
50
use Koha::Exceptions;
Lines 639-649 sub _build_scan_query { Link Here
639
            query => '*'
640
            query => '*'
640
        }
641
        }
641
    };
642
    };
643
    my $es_key = '_key';
644
    $self->get_elasticsearch();
645
    if (version->parse($self->{es_version}) < version->parse('6.0.0')) {
646
        $es_key = '_term';
647
    }
642
    $res->{aggregations} = {
648
    $res->{aggregations} = {
643
        $index => {
649
        $index => {
644
            terms => {
650
            terms => {
645
                field => $index . '__facet',
651
                field => $index . '__facet',
646
                order => { '_term' => 'asc' },
652
                order => { $es_key => 'asc' },
647
                include => $self->_create_regex_filter($self->clean_search_term($term)) . '.*'
653
                include => $self->_create_regex_filter($self->clean_search_term($term)) . '.*'
648
            }
654
            }
649
        }
655
        }
(-)a/t/db_dependent/Koha/SearchEngine/Elasticsearch/QueryBuilder.t (-3 / +9 lines)
Lines 29-34 use List::Util qw( all ); Link Here
29
use Koha::Database;
29
use Koha::Database;
30
use Koha::SearchEngine::Elasticsearch::QueryBuilder;
30
use Koha::SearchEngine::Elasticsearch::QueryBuilder;
31
31
32
use version;
33
32
my $schema = Koha::Database->new->schema;
34
my $schema = Koha::Database->new->schema;
33
$schema->storage->txn_begin;
35
$schema->storage->txn_begin;
34
36
Lines 231-236 subtest 'build_query tests' => sub { Link Here
231
    my %options;
233
    my %options;
232
    $options{sort} = \@sort_params;
234
    $options{sort} = \@sort_params;
233
    my $query = $qb->build_query('test', %options);
235
    my $query = $qb->build_query('test', %options);
236
    my $es_key = '_key';
237
    $qb->get_elasticsearch();
238
    if (version->parse($qb->{es_version}) < version->parse('6.0.0')) {
239
        $es_key = '_term';
240
    }
234
241
235
    is_deeply(
242
    is_deeply(
236
        $query->{sort},
243
        $query->{sort},
Lines 507-513 subtest 'build_query tests' => sub { Link Here
507
        $query->{aggregations}{'author'}{'terms'},
514
        $query->{aggregations}{'author'}{'terms'},
508
        {
515
        {
509
            field => 'author__facet',
516
            field => 'author__facet',
510
            order => { '_term' => 'asc' },
517
            order => { $es_key => 'asc' },
511
            include => '[nN][eE][wW].*'
518
            include => '[nN][eE][wW].*'
512
        },
519
        },
513
        "scan aggregation request is properly formed"
520
        "scan aggregation request is properly formed"
Lines 525-531 subtest 'build_query tests' => sub { Link Here
525
        $query->{aggregations}{'subject'}{'terms'},
532
        $query->{aggregations}{'subject'}{'terms'},
526
        {
533
        {
527
            field => 'subject__facet',
534
            field => 'subject__facet',
528
            order => { '_term' => 'asc' },
535
            order => { $es_key => 'asc' },
529
            include => '[nN][eE][wW].*'
536
            include => '[nN][eE][wW].*'
530
        },
537
        },
531
        "scan aggregation request is properly formed"
538
        "scan aggregation request is properly formed"
532
- 

Return to bug 27770