|
@@ -110,15 +110,12 @@ namespace MediaBrowser.Server.Implementations.Library
|
|
|
|
|
|
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);
|
|
|
|
|
|
- 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
|
|
|
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,
|
|
|
MatchedTerm = i.Item2
|
|
@@ -268,7 +265,7 @@ namespace MediaBrowser.Server.Implementations.Library
|
|
|
{
|
|
|
return new Tuple<string, int>(searchTerm, 3 + (i + 1) * (j + 1));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
index = item.IndexOf(searchTerm, StringComparison.OrdinalIgnoreCase);
|
|
|
|
|
|
if (index == 0)
|