From 1e44a562fdbb9ed0dbe2be6df1389a216da4c2b7 Mon Sep 17 00:00:00 2001 From: Mark van Veen Date: Wed, 24 Apr 2013 01:17:03 +0200 Subject: [PATCH] Fix on Lucene Searching (filtered search) Forgot to filter the hits based on input items. --- .../Library/LuceneSearchEngine.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs b/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs index a8b0e0225a..5ad0293744 100644 --- a/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs +++ b/MediaBrowser.Server.Implementations/Library/LuceneSearchEngine.cs @@ -70,7 +70,10 @@ namespace MediaBrowser.Server.Implementations.Library throw new ArgumentNullException("searchTerm"); } - return LuceneSearch.Search(searchTerm); + var hits = LuceneSearch.Search(searchTerm, items.Count()); + + //return hits; + return hits.Where(searchHit => items.Any(p => p.Id == searchHit.Id)); } public void Dispose() @@ -229,7 +232,7 @@ namespace MediaBrowser.Server.Implementations.Library writer.Flush(true, true, true); } - public static IEnumerable Search(string searchQuery) + public static IEnumerable Search(string searchQuery, int maxHits) { var results = new List(); @@ -255,7 +258,7 @@ namespace MediaBrowser.Server.Implementations.Library logger.Debug("Querying Lucene with query: " + finalQuery.ToString()); long start = DateTime.Now.Ticks; - var searchResult = searcher.Search(finalQuery, 20); + var searchResult = searcher.Search(finalQuery, maxHits); foreach (var searchHit in searchResult.ScoreDocs) { Document hit = searcher.Doc(searchHit.Doc);