Bug 22801: Advance search yr must use date-of-publication and not copydate
authorFridolin Somers <fridolin.somers@biblibre.com>
Fri, 22 Jan 2021 08:39:33 +0000 (09:39 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 26 Jul 2021 08:39:18 +0000 (10:39 +0200)
commit0fb60358dc5042fbfcaf634d6e37dbfd9d6bd6af
tree249e6a57f179722ce952b00a97c11402eb11fd3e
parentf148cae6bd0d0408bf101dda3c688f89e03d852e
Bug 22801: Advance search yr must use date-of-publication and not copydate

In advanced search with Elasticsearch the limit on years range is actually using copydate :

Koha/SearchEngine/Elasticsearch/QueryBuilder.pm in _fix_limit_special_cases() :
        if ( $l =~ /^yr,st-numeric,ge=/ ) {
            my ( $start, $end ) =
              ( $l =~ /^yr,st-numeric,ge=(.*) and yr,st-numeric,le=(.*)$/ );
            next unless defined($start) && defined($end);
            push @new_lim, "copydate:[$start TO $end]";
        }

With Zebra it uses date-of-publication and also in Koha/SearchEngine/Elasticsearch/QueryBuilder.pm :

our %index_field_convert = (
(...)
    'yr' => 'date-of-publication',

This patch uses %index_field_convert to perform 'yr' limit.

Test plan:
1) Apply patch
2) Use Elasticsearch searchengine
3) Go to advanced search with 'More options'
4) Perform a search with a year limit (value or range)
5) Check results are correct

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Koha/SearchEngine/Elasticsearch/QueryBuilder.pm