private void InitializeCurrentIndexFromUserSettings(IEnumerable <IIndex> indexes, UserSettings userSettings) { if (indexes != null) { // Load current index from user settings... if (userSettings != null) { var lastIndexUsed = indexes.FirstOrDefault(index => index.IndexPath.Equals(userSettings.LastSelectedIndex, StringComparison.OrdinalIgnoreCase)); mCurrentIndex = lastIndexUsed != null ? new IndexViewModel(lastIndexUsed) : null; } // Current index not set? Use first index in list. if (mCurrentIndex == null) { mCurrentIndex = indexes.Any() ? new IndexViewModel(indexes.First()) : null; } // Update user settings. if (userSettings != null && mCurrentIndex != null) { userSettings.LastSelectedIndex = mCurrentIndex.Index.IndexPath; } } mCurrentSearcher = mCurrentIndex != null?mCurrentIndex.Index.CreateSearcher() : null; }
public SearchService(IIndexSearcher indexSearcher) { if (indexSearcher == null) { throw new ArgumentNullException("indexSearcher"); } this.indexSearcher = indexSearcher; }
public async Task Invoke(HttpContext context) { if (IsValidContext(context)) { SearchOptions searchOptions = GetSearchOptions(context); IIndexSearcher searcher = GetSearcher(); SearchResult searchResult = searcher.Search(searchOptions); context.Response.ContentType = _settings.ResponseContentType; await context.Response.WriteAsync(searchResult.FormatToJson()); } }
private static IIndexSearcher CreateSearcher() { IIndexSearcher searcher = null; if (useTailFile) { searcher = new InMemoryIndexSearcher(headerPath, indexPath, tailPath); } else { searcher = new InMemoryIndexSearcher(headerPath, indexPath); } return(searcher); }
private IIndexSearcher GetSearcher() { IIndexSearcher searcher = null; if (_settings.UseMemorySearcher) { searcher = new InMemoryIndexSearcher(_headerFilePath, _indexFilePath, _tailFilePath); } else { searcher = new FileSystemIndexSearcher(_headerFilePath, _indexFilePath, _tailFilePath); } return(searcher); }
public CompositeIndexSearcher(IIndexSearcher primarySearcher, IIndexSearcher secondarySearcher) { _primarySearcher = primarySearcher; _secondarySearcher = secondarySearcher; }