From 3326024f102c1de2ec8045b55c9afa85ef07d9ae Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 17 Nov 2017 12:13:55 +0000 Subject: [PATCH] Bug 19563: Followup - 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 --- 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.11.0