Was.OrcSearch – Diff between revs 1 and 3

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 1 Rev 3
-   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;
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
14 { 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 }
-   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(":")) 56 if (filter.Contains(":"))
18 { -  
19 filter = filter.PrepareOrcSearchFilter(); -  
20   -  
21 using (var analyzer = new StandardAnalyzer(LuceneDefaults.Version)) -  
22 { 57 return filter;
23 var fields = new List<string>(); -  
24 foreach (var searchableMetadata in searchableMetadatas) fields.Add(searchableMetadata.SearchName); -  
25   58  
26 var parser = new MultiFieldQueryParser(LuceneDefaults.Version, fields.ToArray(), analyzer); -  
27 var query = parser.Parse(filter); 59 filter = filter.PrepareOrcSearchFilter();
28 filter = query.ToString(); -  
29 } -  
30 } -  
-   60  
-   61 return new MultiFieldQueryParser(
-   62 _version,
-   63 searchableMetadatas
31   64 .Select(searchableMetadata => searchableMetadata.SearchName).ToArray(),
-   65 _analyzer)
32 return filter; 66 .Parse(filter).ToString();
33 } 67 }
34   68  
35 public string GetSearchQuery(params ISearchableMetadataValue[] searchableMetadataValues) 69 public string GetSearchQuery(params ISearchableMetadataValue[] searchableMetadataValues)
36 { 70 {
37 var query = new PhraseQuery(); 71 var query = new PhraseQuery();
38   72  
39 foreach (var searchableMetadataValue in searchableMetadataValues) 73 foreach (var searchableMetadataValue in searchableMetadataValues)
40 query.Add(new Term(searchableMetadataValue.Metadata.SearchName, searchableMetadataValue.Value)); 74 query.Add(new Term(searchableMetadataValue.Metadata.SearchName, searchableMetadataValue.Value));
41   75  
42 var filter = query.ToString(); 76 var filter = query.ToString();
43   77  
44 return GetSearchQuery(filter, new SearchableMetadata[] { }); 78 return GetSearchQuery(filter, new SearchableMetadata[] { });
45 } 79 }
46 } 80 }
47 } 81 }
48   82  
49
Generated by GNU Enscript 1.6.5.90.
83
Generated by GNU Enscript 1.6.5.90.
50   84  
51   85  
52   86