Was.OrcSearch – Diff between revs 3 and 4

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 3 Rev 4
Line 7... Line 7...
7 using Lucene.Net.QueryParsers; 7 using Lucene.Net.QueryParsers;
8 using Lucene.Net.Search; 8 using Lucene.Net.Search;
9 using Lucene.Net.Store; 9 using Lucene.Net.Store;
10 using Was.OrcSearch.EventArgs; 10 using Was.OrcSearch.EventArgs;
11 using Was.OrcSearch.Extensions; 11 using Was.OrcSearch.Extensions;
12 using Was.OrcSearch.Helpers; -  
13 using Was.OrcSearch.Metadata.Interfaces; 12 using Was.OrcSearch.Metadata.Interfaces;
-   13 using Was.OrcSearch.Services.Extensions;
14 using Was.OrcSearch.Services.Interfaces; 14 using Was.OrcSearch.Services.Interfaces;
Line 15... Line 15...
15   15  
16 namespace Was.OrcSearch.Services 16 namespace Was.OrcSearch.Services
17 { 17 {
Line 116... Line 116...
116 var searchableMetadatas = metadata.All.OfType<ISearchableMetadata>(); 116 var searchableMetadatas = metadata.All.OfType<ISearchableMetadata>();
Line 117... Line 117...
117   117  
118 foreach (var searchableMetadata in searchableMetadatas) 118 foreach (var searchableMetadata in searchableMetadatas)
119 { 119 {
-   120 var searchableMetadataValue = searchableMetadata.GetValue(searchable.Instance);
120 var searchableMetadataValue = searchableMetadata.GetValue(searchable.Instance); 121  
121 // Original: ObjectToStringHelper.ToString(searchableMetadataValue); 122 // DEBUG
-   123 //Console.WriteLine("Stringifying: " + searchableMetadataValue);
122 // TODO Support more serializable types. 124
123 var searchableMetadataValueAsString = 125 var searchableMetadataValueAsString =
Line 124... Line 126...
124 string.Join(" ", searchableMetadataValue.Stringify()); 126 string.Join(" ", searchableMetadataValue.Stringify());
125 127
Line 126... Line 128...
126 // DEBUG 128 // DEBUG
127 //Console.WriteLine("String metadata: " + string.Join(" ", searchableMetadataValue.Stringify())); 129 //Console.WriteLine("String metadata: " + string.Join(" ", searchableMetadataValue.Stringify()));
128   130  
129 var field = new Field(searchableMetadata.SearchName, searchableMetadataValueAsString, 131 var field = new Field(searchableMetadata.SearchName, searchableMetadataValueAsString,
Line 130... Line 132...
130 Field.Store.YES, 132 Field.Store.YES,
Line 131... Line 133...
131 searchableMetadata.Analyze ? Field.Index.ANALYZED : Field.Index.NOT_ANALYZED, 133 searchableMetadata.Analyze ? Field.Index.ANALYZED : Field.Index.NOT_ANALYZED,
132 Field.TermVector.YES); 134 Field.TermVector.NO);
Line 162... Line 164...
162 using (var writer = 164 using (var writer =
163 new IndexWriter(_indexDirectory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED)) 165 new IndexWriter(_indexDirectory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED))
164 { 166 {
165 foreach (var searchable in searchables) 167 foreach (var searchable in searchables)
166 { 168 {
167 int index; -  
168 if (!_searchableIndexes.TryGetValue(searchable, out index)) continue; 169 if (!_searchableIndexes.TryGetValue(searchable, out var index)) continue;
Line 169... Line 170...
169   170  
170 var queryAsText = $"{IndexId}:{index}"; 171 var queryAsText = $"{IndexId}:{index}";
171 var parser = new QueryParser(LuceneDefaults.Version, string.Empty, analyzer); 172 var parser = new QueryParser(LuceneDefaults.Version, string.Empty, analyzer);
Line 275... Line 276...
275 var index = int.Parse(doc.Get(IndexId)); 276 var index = int.Parse(doc.Get(IndexId));
276 results.Add(_indexedObjects[index]); 277 results.Add(_indexedObjects[index]);
277 } 278 }
278 } 279 }
279 } 280 }
280 catch (ParseException ex) 281 catch (ParseException)
281 { 282 {
282 //Log.Warning(ex, "Failed to parse search pattern"); 283 //Log.Warning(ex, "Failed to parse search pattern");
283 throw ex; 284 throw;
284 } 285 }
285 catch (Exception ex) 286 catch (Exception)
286 { 287 {
287 //Log.Error(ex, "An error occurred while searching, returning default results"); 288 //Log.Error(ex, "An error occurred while searching, returning default results");
288 throw ex; 289 throw;
289 } 290 }
290 finally 291 finally
291 { 292 {
292 Searched?.Invoke(this, new SearchEventArgs(filter, results)); 293 Searched?.Invoke(this, new SearchEventArgs(filter, results));
293 } 294 }