Bug 23204: (follow-up) Also sort by marc field
authorFridolin Somers <fridolin.somers@biblibre.com>
Tue, 12 Nov 2019 16:15:14 +0000 (17:15 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 27 Mar 2020 11:55:30 +0000 (11:55 +0000)
Test plan :
Launching script several times and see that marc field is alway ordered increasing

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Koha/SearchEngine/Elasticsearch.pm

index 850a437..ce762a0 100644 (file)
@@ -263,10 +263,17 @@ sub raw_elasticsearch_mappings {
     my $mappings = {};
     while ( my $search_field = $search_fields->next ) {
 
-        my $marc_to_fields = $schema->resultset('SearchMarcToField')->search( { search_field_id => $search_field->id } );
+        my $marc_to_fields = $schema->resultset('SearchMarcToField')->search(
+            { search_field_id => $search_field->id },
+            {
+                join     => 'search_marc_map',
+                order_by => { -asc => 'search_marc_map.marc_field' }
+            }
+        );
 
         while ( my $marc_to_field = $marc_to_fields->next ) {
-            my $marc_map = Koha::SearchMarcMaps->find( $marc_to_field->search_marc_map_id );
+
+            my $marc_map = $marc_to_field->search_marc_map;
 
             next if $marc_type && $marc_map->marc_type ne $marc_type;