From 9418010d63d04090fc1e317096e16e264eb593c6 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 17 Nov 2017 12:13:55 +0000 Subject: [PATCH] Bug 19563: (follow-up) Restore checking sort variable This code seems a bit odd, $self->sort_fields()->{$name} is checking if there is any mapping in ES for a field, so if one marc field in an index is marked as sortable this will exists. We need to check the individual marc field to see if it should be added to the sort index here. If you apply the first patch, reindex, and view a record in es: curl -XGET 'localhost:9200/koha_kohadev_biblios/data/19/?pretty' | grep -A 10 author__sort You will see that 245$c is included in the record without that additional check Apply this, reindex again, and that field should not be included Signed-off-by: David Bourgault Signed-off-by: Julian Maurice Signed-off-by: Jonathan Druart Signed-off-by: Nick Clemens --- Koha/SearchEngine/Elasticsearch.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Koha/SearchEngine/Elasticsearch.pm b/Koha/SearchEngine/Elasticsearch.pm index 2b2fd109e3..85a20a920d 100644 --- a/Koha/SearchEngine/Elasticsearch.pm +++ b/Koha/SearchEngine/Elasticsearch.pm @@ -297,7 +297,6 @@ sub reset_elasticsearch_mappings { # sort_fields isn't set, then it'll generate it. sub sort_fields { my $self = shift; - if (@_) { $self->_sort_fields_accessor(@_); return; @@ -348,7 +347,9 @@ sub get_fixer_rules { push @rules, "sum('$name')"; } if ($self->sort_fields()->{$name}) { - push @rules, "marc_map('$marc_field','${name}__sort.\$append', $options)"; + if ($sort || !defined $sort) { + push @rules, "marc_map('$marc_field','${name}__sort.\$append', $options)"; + } } } ); -- 2.39.5