https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29632 Bug ID: 29632 Summary: Callnumber sorting is incorrect in Elasticsearch Change sponsored?: --- Product: Koha Version: master Hardware: All OS: All Status: NEW Severity: normal Priority: P5 - low Component: Searching - Elasticsearch Assignee: koha-bugs@lists.koha-community.org Reporter: nick@bywatersolutions.com It looks like we are not sorting cn_sort as a raw field, but sorting the analyzed version. To recreate: 0 - Be using ES with Koha 1 - On records with single item, add callnumbers: VA65 E7 R63 1984 VA65 E7 T35 1990 VA65 E45 R67 1985 2 - Add public note 'shrimp' or something to make them easily searchable as a group 3 - Search for 'shrimp' 4 - Note E45 comes last, it should come first Problem may be here: 1122 sub _sort_field { 1123 my ($self, $f) = @_; 1124 1125 my $mappings = $self->get_elasticsearch_mappings(); 1126 my $textField = defined $mappings->{data}{properties}{$f}{type} && $mappings->{data}{properties}{$f}{type} eq 'text'; 1127 if (!defined $self->sort_fields()->{$f} || $self->sort_fields()->{$f}) { 1128 $f .= '__sort'; 1129 } else { 1130 # We need to add '.raw' to text fields without a sort field, 1131 # otherwise it'll sort based on the tokenised form. 1132 $f .= '.raw' if $textField; 1133 } 1134 return $f; 1135 } We need to enforce raw for cn-sort, or we need to index it unanalyzed -- You are receiving this mail because: You are watching all bug changes. You are the assignee for the bug.