Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        public SearchService(IIndexSearcher indexSearcher)
        {
            if (indexSearcher == null)
            {
                throw new ArgumentNullException("indexSearcher");
            }

            this.indexSearcher = indexSearcher;
        }
Ejemplo n.º 3
0
        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());
            }
        }
Ejemplo n.º 4
0
        private static IIndexSearcher CreateSearcher()
        {
            IIndexSearcher searcher = null;

            if (useTailFile)
            {
                searcher = new InMemoryIndexSearcher(headerPath, indexPath, tailPath);
            }
            else
            {
                searcher = new InMemoryIndexSearcher(headerPath, indexPath);
            }
            return(searcher);
        }
Ejemplo n.º 5
0
        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;
 }