@@ -, +, @@ Koha::SearchEngine::Elasticsearch->reset_elasticsearch_mappings throws DBD::mysql Duplicate entry exceptions `search_marc_map_id`, `sort`, `suggestible`) VALUES ( ?, ?, ?, ?, ? )\" with ParamValues: --- Koha/SearchEngine/Elasticsearch.pm | 7 +++++++ admin/searchengine/elasticsearch/mappings.pl | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) --- a/Koha/SearchEngine/Elasticsearch.pm +++ a/Koha/SearchEngine/Elasticsearch.pm @@ -275,10 +275,17 @@ sub _elasticsearch_mapping_for_default { }; } +=head2 reset_elasticsearch_mappings + +Deletes all search mappings and adds the default search mappings + +=cut + sub reset_elasticsearch_mappings { my $mappings_yaml = C4::Context->config('intranetdir') . '/admin/searchengine/elasticsearch/mappings.yaml'; my $indexes = LoadFile( $mappings_yaml ); + Koha::SearchMarcMaps->search->delete; while ( my ( $index_name, $fields ) = each %$indexes ) { while ( my ( $field_name, $data ) = each %$fields ) { my $field_type = $data->{type}; --- a/admin/searchengine/elasticsearch/mappings.pl +++ a/admin/searchengine/elasticsearch/mappings.pl @@ -101,7 +101,6 @@ elsif( $op eq 'reset' ) { # TODO Move this feature to the interface my $sure = $input->param('i_know_what_i_am_doing'); if ( $sure ) { - Koha::SearchMarcMaps->search->delete; Koha::SearchEngine::Elasticsearch->reset_elasticsearch_mappings; } } --