public NuGetSearcherManager(string indexName, Lucene.Net.Store.Directory directory, Rankings rankings, DownloadLookup downloadCounts, FrameworkCompatibility frameworkCompatibility)
            : base(directory)
        {
            Rankings               = rankings;
            DownloadCounts         = downloadCounts;
            IndexName              = indexName;
            FrameworkCompatibility = frameworkCompatibility;

            RegistrationBaseAddress = new Dictionary <string, Uri>();

            _currentDownloadCounts = new IndexData <IDictionary <string, IDictionary <string, int> > >(
                "DownloadCounts",
                DownloadCounts.Path,
                DownloadCounts.Load,
                DownloadCountRefreshRate);
            _currentRankings = new IndexData <IDictionary <string, IDictionary <string, int> > >(
                "Rankings",
                Rankings.Path,
                Rankings.Load,
                RankingRefreshRate);
            _currentFrameworkCompatibility = new IndexData <IDictionary <string, ISet <string> > >(
                "FrameworkCompatibility",
                FrameworkCompatibility.Path,
                FrameworkCompatibility.Load,
                FrameworkCompatibilityRefreshRate
                );
        }
        protected PackageSearcherManager(string indexName, Lucene.Net.Store.Directory directory, Rankings rankings, DownloadCounts downloadCounts, FrameworksList frameworks)
            : base(directory)
        {
            Rankings       = rankings;
            DownloadCounts = downloadCounts;
            Frameworks     = frameworks;
            IndexName      = indexName;

            _currentDownloadCounts = new IndexData <IDictionary <int, DownloadCountRecord> >(
                "DownloadCounts",
                DownloadCounts.Path,
                DownloadCounts.Load,
                DownloadCountRefreshRate);
            _currentRankings = new IndexData <IDictionary <string, IDictionary <string, int> > >(
                "Rankings",
                Rankings.Path,
                Rankings.Load,
                RankingRefreshRate);
            _currentFrameworkList = new IndexData <IList <FrameworkName> >(
                "FrameworkList",
                Frameworks.Path,
                Frameworks.Load,
                FrameworksRefreshRate);

            Id = Guid.NewGuid(); // Used for identifying changes to the searcher manager at runtime.
        }