Was.OrcSearch – Diff between revs 1 and 3

Subversion Repositories:
Rev:
Show entire fileRegard 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 {
14 { 18 private readonly Analyzer _analyzer;
-   19 private readonly Version _version = LuceneDefaults.Version;
15 public string GetSearchQuery(string filter, IEnumerable<ISearchableMetadata> searchableMetadatas) 20  
-   21 /// <summary>
-   22 /// Default constructor using a default whitespace analyzer.
16 { 23 /// </summary>
17 if (!filter.Contains(":")) 24 public SearchQueryService()
18 { 25 {
-   26 _analyzer = new WhitespaceAnalyzer();
Line -... Line 27...
-   27 }
19 filter = filter.PrepareOrcSearchFilter(); 28  
-   29 /// <summary>
-   30 /// Instantiate an analyzer using a specific Lucene version.
-   31 /// </summary>
-   32 /// <param name="analyzer">The analyzer to use.</param>
20   33 /// <param name="version">The lucene version.</param>
21 using (var analyzer = new StandardAnalyzer(LuceneDefaults.Version)) 34 public SearchQueryService(Analyzer analyzer, Version version)
22 { -  
-   35 {
Line -... Line 36...
-   36 _version = version;
-   37 }
-   38  
-   39 /// <summary>
23 var fields = new List<string>(); 40 /// Instantiate a per-field analyzer.
24 foreach (var searchableMetadata in searchableMetadatas) fields.Add(searchableMetadata.SearchName); 41 /// </summary>
-   42 /// <param name="default">The default analyzer to use.</param>
25   43 /// <param name="fieldAnalyzers">A collection of fields to analyzers.</param>
26 var parser = new MultiFieldQueryParser(LuceneDefaults.Version, fields.ToArray(), analyzer); 44 public SearchQueryService(Analyzer @default, Dictionary<string, Analyzer> fieldAnalyzers)
-   45 {
-   46 _analyzer = new PerFieldAnalyzerWrapper(@default, fieldAnalyzers);
-   47 }
-   48  
27 var query = parser.Parse(filter); 49 public void Dispose()
Line -... Line 50...
-   50 {
-   51 _analyzer?.Dispose();
-   52 }
28 filter = query.ToString(); 53  
-   54 public string GetSearchQuery(string filter, IEnumerable<ISearchableMetadata> searchableMetadatas)
-   55 {
-   56 if (filter.Contains(":"))
-   57 return filter;
-   58  
-   59 filter = filter.PrepareOrcSearchFilter();
-   60  
-   61 return new MultiFieldQueryParser(
-   62 _version,
29 } 63 searchableMetadatas
Line 30... Line 64...
30 } 64 .Select(searchableMetadata => searchableMetadata.SearchName).ToArray(),
31   65 _analyzer)
32 return filter; 66 .Parse(filter).ToString();