Was.OrcSearch – Diff between revs 3 and 4
?pathlinks?
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 | } |