diff --git a/Koha/SearchEngine/Elasticsearch.pm b/Koha/SearchEngine/Elasticsearch.pm index c4f5041930..6e36695409 100644 --- a/Koha/SearchEngine/Elasticsearch.pm +++ b/Koha/SearchEngine/Elasticsearch.pm @@ -209,6 +209,8 @@ sub get_elasticsearch_mappings { $es_type = 'stdno'; } elsif ($type eq 'year') { $es_type = 'year'; + } elsif ($type eq 'callnumber') { + $es_type = 'cn_sort'; } if ($search) { diff --git a/admin/searchengine/elasticsearch/field_config.yaml b/admin/searchengine/elasticsearch/field_config.yaml index d78bdf06dd..cf90482aa2 100644 --- a/admin/searchengine/elasticsearch/field_config.yaml +++ b/admin/searchengine/elasticsearch/field_config.yaml @@ -71,3 +71,7 @@ sort: type: icu_collation_keyword index: false numeric: true + cn_sort: + type: icu_collation_keyword + index: false + numeric: false diff --git a/admin/searchengine/elasticsearch/mappings.yaml b/admin/searchengine/elasticsearch/mappings.yaml index 28429878f9..4f40e9b0c8 100644 --- a/admin/searchengine/elasticsearch/mappings.yaml +++ b/admin/searchengine/elasticsearch/mappings.yaml @@ -1167,7 +1167,7 @@ biblios: marc_type: marc21 sort: 1 suggestible: '' - type: '' + type: 'callnumber' cn-suffix: label: cn-suffix mappings: diff --git a/installer/data/mysql/atomicupdate/bug_29632.pl b/installer/data/mysql/atomicupdate/bug_29632.pl new file mode 100755 index 0000000000..0c224d0eab --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_29632.pl @@ -0,0 +1,15 @@ +use Modern::Perl; + +return { + bug_number => "29632 ", + description => "Add callnumber type to allow sorting", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + $dbh->do(q{ + ALTER TABLE `search_field` MODIFY COLUMN `type` + enum('','string','date','number','boolean','sum','isbn','stdno','year','callnumber') NOT NULL + }); + say $out "Add callnumber to search_field type enum"; + }, +}; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt index 05f3da43d2..c120a76ad1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/searchengine/elasticsearch/mappings.tt @@ -219,6 +219,11 @@ a.add, a.delete { [% ELSE %] [% END %] + [% IF search_field.type == "callnumber" %] + + [% ELSE %] + + [% END %]