public DownloadsScoreProvider(IndexReader reader,
            IReadOnlyDictionary<string, int[]> idMapping,
            Downloads downloads,
            RankingResult ranking,
            QueryBoostingContext context,
            double baseBoost)
            : base(reader)
        {
            _idMapping = idMapping;
            _downloads = downloads;
            _baseBoost = baseBoost;
            _ranking = ranking;
            _context = context;

            // We need the reader name: Lucene *may* have multiple segments (which are smaller indices)
            // and RankingsHandler provides us with the per-segment document numbers.
            //
            // If no segments are present (small index) we use an empty string, which is what
            // Lucene also uses internally.
            var segmentReader = reader as SegmentReader;

            _readerName = segmentReader != null
                ? segmentReader.SegmentName
                : string.Empty;
        }
        public VersionsHandler(Downloads downloads)
        {
            if (downloads == null)
            {
                throw new ArgumentNullException(nameof(downloads));
            }

            _downloads = downloads;
        }
        public DownloadsBoostedQuery(Query query,
            IReadOnlyDictionary<string, int[]> docIdMapping,
            Downloads downloads,
            RankingResult ranking,
            QueryBoostingContext context,
            double baseBoost = BaseBoostConstant)
            : base(query)
        {
            _docIdMapping = docIdMapping;
            _downloads = downloads;
            _baseBoost = baseBoost;
            _ranking = ranking;
            _context = context;

            Query = query;
        }
        public NuGetIndexSearcher(
            NuGetSearcherManager manager,
            IndexReader reader,
            IDictionary<string, string> commitUserData,
            IDictionary<string, Filter> curatedFeeds,
            Filter[][] latest,
            IReadOnlyDictionary<string, int[]> docIdMapping,
            Downloads downloads,
            VersionResult[] versions,
            RankingResult rankings,
            QueryBoostingContext context,
            OpenBitSet latestBitSet,
            OpenBitSet latestStableBitSet,
            OwnersResult owners)
            : base(reader)
        {
            Manager = manager;
            CommitUserData = commitUserData;

            _curatedFeeds = new Dictionary<string, Filter>(curatedFeeds.Count);
            foreach (var curatedFeedsFilter in curatedFeeds)
            {
                _curatedFeeds.Add(curatedFeedsFilter.Key, new CachingWrapperFilter(curatedFeedsFilter.Value));
            }

            _latest = latest;
            DocIdMapping = docIdMapping;
            Downloads = downloads;
            Versions = versions;
            Rankings = rankings;
            LatestBitSet = latestBitSet;
            LatestStableBitSet = latestStableBitSet;
            Owners = owners;
            QueryBoostingContext = context;
            LastReopen = DateTime.UtcNow;
        }
Пример #5
0
        private static Query MakeAutoCompleteQuery(string q,
            IReadOnlyDictionary<string, int[]> docIdMapping,
            Downloads downloads,
            RankingResult rankings,
            QueryBoostingContext context)
        {
            var query = NuGetQuery.MakeAutoCompleteQuery(q);

            var boostedQuery = new DownloadsBoostedQuery(query,
                docIdMapping,
                downloads,
                rankings,
                context,
                2.0);

            return boostedQuery;
        }
 public DownloadDocIdMappingHandler(Downloads downloads)
 {
     _downloads = downloads;
 }
 public DownloadDocIdMappingHandler(Downloads downloads)
 {
     _downloads = downloads;
 }