@@ -34,7 +34,7 @@ public sealed class SearchClient : IDisposable
3434
3535 public bool ConfigApplied { get ; private set ; }
3636
37- public bool IsRunning { get ; private set ; }
37+ public bool IsRunning { get ; private set ; }
3838
3939 private static readonly ILogger Logger = LogUtil . Factory . CreateLogger ( nameof ( SearchClient ) ) ;
4040
@@ -92,6 +92,7 @@ public async Task<SearchResult[]> RunSearchAsync(SearchQuery query, Cancellation
9292 [ CBN ] IProgress < int > p = null )
9393 {
9494 IsRunning = true ;
95+
9596 if ( ! ConfigApplied ) {
9697 await ApplyConfigAsync ( ) ;
9798 }
@@ -141,8 +142,15 @@ public async Task<SearchResult[]> RunSearchAsync(SearchQuery query, Cancellation
141142 // var sri = results.SelectMany(r => r.Results).ToArray();
142143 // var result = Optimize(sri).FirstOrDefault() ?? sri.FirstOrDefault();
143144 //todo
144- OpenResult ( results . FirstOrDefault ( ) ) ;
145+ try {
146+ var rr = results . Where ( r => r . Results . Any ( ) ) ;
147+
148+ OpenResult ( rr . MaxBy ( r => r . Results . Average ( r2 => r2 . Score ) ) ) ;
149+ }
150+ catch ( Exception e ) {
145151
152+ OpenResult ( results . FirstOrDefault ( ) ) ;
153+ }
146154 }
147155
148156 IsRunning = false ;
@@ -152,7 +160,7 @@ public async Task<SearchResult[]> RunSearchAsync(SearchQuery query, Cancellation
152160
153161 private void OpenResult ( SearchResult result )
154162 {
155- #if DEBUG
163+ #if DEBUG && ! TEST
156164#pragma warning disable CA1822
157165 // ReSharper disable once MemberCanBeMadeStatic.Local
158166 Logger . LogDebug ( "Not opening result {result}" , result ) ;
0 commit comments