Explorar o código

more music sorting options

Luke Pulverenti %!s(int64=12) %!d(string=hai) anos
pai
achega
7416215530

+ 5 - 8
MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs

@@ -110,15 +110,12 @@ namespace MediaBrowser.Server.Implementations.Library
 
 
             var items = inputItems.Where(i => !(i is MusicArtist)).ToList();
             var items = inputItems.Where(i => !(i is MusicArtist)).ToList();
 
 
-            foreach (var item in items)
+            hints.AddRange(items.AsParallel().Select(item =>
             {
             {
                 var index = GetIndex(item.Name, searchTerm, terms);
                 var index = GetIndex(item.Name, searchTerm, terms);
 
 
-                if (index.Item2 != -1)
-                {
-                    hints.Add(new Tuple<BaseItem, string, int>(item, index.Item1, index.Item2));
-                }
-            }
+                return new Tuple<BaseItem, string, int>(item, index.Item1, index.Item2);
+            }));
 
 
             // Find artists
             // Find artists
             var artists = items.OfType<Audio>()
             var artists = items.OfType<Audio>()
@@ -222,7 +219,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 }
                 }
             }
             }
 
 
-            return hints.OrderBy(i => i.Item3).Select(i => new SearchHintInfo
+            return hints.Where(i => i.Item3 >= 0).OrderBy(i => i.Item3).Select(i => new SearchHintInfo
             {
             {
                 Item = i.Item1,
                 Item = i.Item1,
                 MatchedTerm = i.Item2
                 MatchedTerm = i.Item2
@@ -268,7 +265,7 @@ namespace MediaBrowser.Server.Implementations.Library
                     {
                     {
                         return new Tuple<string, int>(searchTerm, 3 + (i + 1) * (j + 1));
                         return new Tuple<string, int>(searchTerm, 3 + (i + 1) * (j + 1));
                     }
                     }
-                    
+
                     index = item.IndexOf(searchTerm, StringComparison.OrdinalIgnoreCase);
                     index = item.IndexOf(searchTerm, StringComparison.OrdinalIgnoreCase);
 
 
                     if (index == 0)
                     if (index == 0)