Bug 26832: Make Elasticsearch mappings export use UTF-8
authorFridolin Somers <fridolin.somers@biblibre.com>
Tue, 27 Oct 2020 08:03:16 +0000 (09:03 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 4 Nov 2020 11:59:32 +0000 (12:59 +0100)
Script misc/search_tools/export_elasticsearch_mappings.pl allows to export current search engine configuration into a YAML file.
This export should use UTF-8 encoding, like other exports.

Test plan :
1) Go to Administration > Search engine configuration (Elasticsearch)
2) Edit a field label to use a diacrtic, for example local-number => Numéro
3) Save
4) Edit file etc/koha-conf.xml to enable 'elasticsearch_index_mappings'
5) Export mappings to file via misc/search_tools/export_elasticsearch_mappings.pl -t $MARCFLAVOUR
6) Reset memcached and plack
7) Back to Administration > Search engine configuration (Elasticsearch)
8) Click on 'Reset Mappings' and accept
9) Look at field 'local-number'
=> Without patch diacritic 'é' is broken
10) You may try with an emoji B-)

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
misc/search_tools/export_elasticsearch_mappings.pl

index 9fd6d78..5d3f49c 100755 (executable)
@@ -80,4 +80,5 @@ if ( $type && $type !~ /^(marc21|unimarc|normarc)$/ ) {
 
 my $mappings = Koha::SearchEngine::Elasticsearch::raw_elasticsearch_mappings( $type );
 
+binmode STDOUT, ":encoding(UTF-8)";
 print Dump($mappings);