Was.OrcSearch – Diff between revs 1 and 3

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 1 Rev 3
Line -... Line 1...
-   1 using System;
1 using System.Collections.Generic; 2 using System.Collections.Generic;
-   3 using System.Linq;
2 using Lucene.Net.Analysis.Standard; 4 using Lucene.Net.Analysis;
3 using Lucene.Net.Index; 5 using Lucene.Net.Index;
4 using Lucene.Net.QueryParsers; 6 using Lucene.Net.QueryParsers;
5 using Lucene.Net.Search; 7 using Lucene.Net.Search;
6 using Was.OrcSearch.Extensions; 8 using Was.OrcSearch.Extensions;
7 using Was.OrcSearch.Metadata; 9 using Was.OrcSearch.Metadata;
8 using Was.OrcSearch.Metadata.Interfaces; 10 using Was.OrcSearch.Metadata.Interfaces;
9 using Was.OrcSearch.Services.Interfaces; 11 using Was.OrcSearch.Services.Interfaces;
-   12 using Version = Lucene.Net.Util.Version;
Line 10... Line 13...
10   13  
11 namespace Was.OrcSearch.Services 14 namespace Was.OrcSearch.Services
12 { 15 {
13 public class SearchQueryService : ISearchQueryService 16 public class SearchQueryService : ISearchQueryService, IDisposable
-   17 {
-   18 private readonly Analyzer _analyzer;
-   19 private readonly Version _version = LuceneDefaults.Version;
-   20  
-   21 /// <summary>
-   22 /// Default constructor using a default whitespace analyzer.
-   23 /// </summary>
-   24 public SearchQueryService()
-   25 {
-   26 _analyzer = new WhitespaceAnalyzer();
-   27 }
-   28  
-   29 /// <summary>
-   30 /// Instantiate an analyzer using a specific Lucene version.
-   31 /// </summary>
-   32 /// <param name="analyzer">The analyzer to use.</param>
-   33 /// <param name="version">The lucene version.</param>
-   34 public SearchQueryService(Analyzer analyzer, Version version)
-   35 {
-   36 _version = version;
-   37 }
-   38  
-   39 /// <summary>
-   40 /// Instantiate a per-field analyzer.
-   41 /// </summary>
-   42 /// <param name="default">The default analyzer to use.</param>
-   43 /// <param name="fieldAnalyzers">A collection of fields to analyzers.</param>
-   44 public SearchQueryService(Analyzer @default, Dictionary<string, Analyzer> fieldAnalyzers)
-   45 {
-   46 _analyzer = new PerFieldAnalyzerWrapper(@default, fieldAnalyzers);
-   47 }
-   48  
-   49 public void Dispose()
-   50 {
-   51 _analyzer?.Dispose();
-   52 }
14 { 53  
15 public string GetSearchQuery(string filter, IEnumerable<ISearchableMetadata> searchableMetadatas) 54 public string GetSearchQuery(string filter, IEnumerable<ISearchableMetadata> searchableMetadatas)
16 { 55 {
17 if (!filter.Contains(":")) -  
18 { -  
19 filter = filter.PrepareOrcSearchFilter(); -  
20   -  
21 using (var analyzer = new StandardAnalyzer(LuceneDefaults.Version)) 56 if (filter.Contains(":"))
22 { -  
23 var fields = new List<string>(); -  
24 foreach (var searchableMetadata in searchableMetadatas) fields.Add(searchableMetadata.SearchName); 57 return filter;
25   -  
26 var parser = new MultiFieldQueryParser(LuceneDefaults.Version, fields.ToArray(), analyzer); 58  
27 var query = parser.Parse(filter); -  
28 filter = query.ToString(); -  
29 } -  
Line -... Line 59...
-   59 filter = filter.PrepareOrcSearchFilter();
-   60  
-   61 return new MultiFieldQueryParser(
-   62 _version,
30 } 63 searchableMetadatas
-   64 .Select(searchableMetadata => searchableMetadata.SearchName).ToArray(),
31   65 _analyzer)
Line 32... Line 66...
32 return filter; 66 .Parse(filter).ToString();
33 } 67 }
34   68