internal BooleanScorer(BooleanWeight weight, bool disableCoord, int minNrShouldMatch, IList <BulkScorer> optionalScorers, IList <BulkScorer> prohibitedScorers, int maxCoord) { this.minNrShouldMatch = minNrShouldMatch; this.weight = weight; foreach (BulkScorer scorer in optionalScorers) { scorers = new SubScorer(scorer, false, false, bucketTable.NewCollector(0), scorers); } foreach (BulkScorer scorer in prohibitedScorers) { scorers = new SubScorer(scorer, false, true, bucketTable.NewCollector(PROHIBITED_MASK), scorers); } coordFactors = new float[optionalScorers.Count + 1]; for (int i = 0; i < coordFactors.Length; i++) { coordFactors[i] = disableCoord ? 1.0f : weight.Coord(i, maxCoord); } }