@@ -9,17 +9,16 @@ namespace Elastic.Documentation.Configuration.Search;
99
1010public record SearchConfiguration
1111{
12- private readonly IReadOnlyDictionary < string , string [ ] > _synonyms ;
12+ private readonly IReadOnlyList < string [ ] > _synonyms ;
1313
14- public required IReadOnlyDictionary < string , string [ ] > Synonyms
14+ public required IReadOnlyList < string [ ] > Synonyms
1515 {
1616 get => _synonyms ;
1717 [ MemberNotNull ( nameof ( _synonyms ) ) ]
1818 init
1919 {
2020 _synonyms = value ;
2121 SynonymBiDirectional = value
22- . Select ( kv => kv . Value . Concat ( [ kv . Key ] ) . ToArray ( ) )
2322 . SelectMany ( a =>
2423 {
2524 var targets = new List < string [ ] > ( ) ;
@@ -120,15 +119,17 @@ public static class SearchConfigurationExtensions
120119 public static SearchConfiguration CreateSearchConfiguration ( this ConfigurationFileProvider provider )
121120 {
122121 var searchFile = provider . SearchFile ;
123- var synonyms = new Dictionary < string , string [ ] > ( ) ;
124122
125123 if ( ! searchFile . Exists )
126- return new SearchConfiguration { Synonyms = synonyms , Rules = [ ] , DiminishTerms = [ ] } ;
124+ return new SearchConfiguration { Synonyms = [ ] , Rules = [ ] , DiminishTerms = [ ] } ;
127125
128126 var searchDto = ConfigurationFileProvider . Deserializer . Deserialize < SearchConfigDto > ( searchFile . OpenText ( ) ) ;
129- synonyms = searchDto . Synonyms
127+ var synonyms = searchDto . Synonyms
130128 . Where ( s => s . Count > 1 )
131- . ToDictionary ( k => k [ 0 ] , sl => sl . Skip ( 1 ) . ToArray ( ) , StringComparer . OrdinalIgnoreCase ) ;
129+ . Select ( s => s . ToArray ( ) )
130+ . GroupBy ( s => s [ 0 ] , StringComparer . OrdinalIgnoreCase )
131+ . Select ( g => g . First ( ) )
132+ . ToArray ( ) ;
132133 var rules = searchDto . Rules . Select ( ParseRule ) . ToImmutableArray ( ) ;
133134 var diminishTerms = searchDto . DiminishTerms . ToImmutableArray ( ) ;
134135 return new SearchConfiguration { Synonyms = synonyms , Rules = rules , DiminishTerms = diminishTerms } ;
0 commit comments