@@ -, +, @@ Date, C.J. Date, C.j. Date, C.J . 830 $aDate, C.J. ;$v5 830 $aDate, C.J. ; $v5 830 $aDate, C.J.; $v5 You wouldn't want to-- You wouldn't want to You wouldn't want to.. perl misc/search_tools/rebuild_elasticsearch -v -r --- C4/Search.pm | 4 +++- admin/searchengine/elasticsearch/field_config.yaml | 1 + admin/searchengine/elasticsearch/index_config.yaml | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) --- a/C4/Search.pm +++ a/C4/Search.pm @@ -680,6 +680,7 @@ sub _get_facets_data_from_record { next if $field->indicator(1) eq 'z'; my $data = $field->as_string( $subfield_letters, $facet->{ sep } ); + $data =~ s/\s*(?textContent; + $facet_value =~ s/\s*(?{ $facet_value } = $term->getAttribute( 'occur' ); + $facets->{ $facet_value } = ( defined $facets->{$facet_value} ) ? $facets->{ $facet_value } + $term->getAttribute( 'occur' ) : $term->getAttribute( 'occur' ); } return $facets; --- a/admin/searchengine/elasticsearch/field_config.yaml +++ a/admin/searchengine/elasticsearch/field_config.yaml @@ -55,6 +55,7 @@ search: facet: default: type: keyword + normalizer: facet_normalizer # Suggestible suggestible: default: --- a/admin/searchengine/elasticsearch/index_config.yaml +++ a/admin/searchengine/elasticsearch/index_config.yaml @@ -28,6 +28,8 @@ index: nfkc_cf_normalizer: type: custom char_filter: icu_normalizer + facet_normalizer: + char_filter: facet char_filter: # The punctuation filter is used to remove any punctuation chars in fields that don't use icu_tokenizer. punctuation: @@ -35,4 +37,8 @@ index: # The pattern contains all ASCII punctuation characters. pattern: '([\x00-\x1F,\x21-\x2F,\x3A-\x40,\x5B-\x60,\x7B-\x89,\x8B,\x8D,\x8F,\x90-\x99,\x9B,\x9D,\xA0-\xBF,\xD7,\xF7])' replacement: '' + facet: + type: pattern_replace + pattern: '\s*(?