@@ -91,12 +91,26 @@ private static MatchResult Match(string query, IReadOnlyCollection<string> candi
9191 if ( candidates . Count == 0 )
9292 return null ;
9393
94- var match = candidates . Select ( candidate => Main . Context . API . FuzzySearch ( query , candidate ) )
94+ var match = candidates . Select ( candidate =>
95+ {
96+ var matchResult = Main . Context . API . FuzzySearch ( query , candidate ) ;
97+ matchResult . Score = FuzzySearch ( query , candidate ) ;
98+ return matchResult ;
99+ } )
95100 . MaxBy ( match => match . Score ) ;
96101
97102 return match ? . IsSearchPrecisionScoreMet ( ) ?? false ? match : null ;
98103 }
99104
105+ private static int FuzzySearch ( string query , string stringToCompare )
106+ {
107+ var newScore = FuzzySharp . Fuzz . PartialTokenSetRatio ( query . ToLower ( ) , stringToCompare . ToLower ( ) ) ;
108+ if ( stringToCompare . Length < query . Length )
109+ newScore = 0 ;
110+
111+ return newScore ;
112+ }
113+
100114 public Result Result ( string query , IPublicAPI api )
101115 {
102116 string title ;
@@ -112,13 +126,16 @@ public Result Result(string query, IPublicAPI api)
112126 {
113127 title = resultName ;
114128 matchResult = Main . Context . API . FuzzySearch ( query , resultName ) ;
129+ matchResult . Score = FuzzySearch ( query , resultName ) ;
115130 }
116131 else
117132 {
118133 // Search in both
119134 title = $ "{ resultName } : { Description } ";
120135 var nameMatch = Main . Context . API . FuzzySearch ( query , resultName ) ;
136+ nameMatch . Score = FuzzySearch ( query , resultName ) ;
121137 var descriptionMatch = Main . Context . API . FuzzySearch ( query , Description ) ;
138+ descriptionMatch . Score = FuzzySearch ( query , Description ) ;
122139 if ( descriptionMatch . Score > nameMatch . Score )
123140 {
124141 for ( int i = 0 ; i < descriptionMatch . MatchData . Count ; i ++ )
0 commit comments