private NodeScorer makeCountingSumScorerNoReq() throws IOException { // No required scorers NodeScorer requiredCountingSumScorer; if (optionalScorers.size() > 1) requiredCountingSumScorer = this.countingDisjunctionSumScorer(optionalScorers); else if (optionalScorers.size() == 1) requiredCountingSumScorer = new SingleMatchScorer(optionalScorers.get(0)); else { requiredCountingSumScorer = this.countingConjunctionSumScorer(optionalScorers); } return this.addProhibitedScorers(requiredCountingSumScorer); }
private NodeScorer makeCountingSumScorerSomeReq() throws IOException { // At least one required scorer. final NodeScorer requiredCountingSumScorer = (requiredScorers.size() == 1) ? new SingleMatchScorer(requiredScorers.get(0)) : this.countingConjunctionSumScorer(requiredScorers); if (optionalScorers.isEmpty()) { return this.addProhibitedScorers(requiredCountingSumScorer); } else { return new NodeReqOptScorer( this.addProhibitedScorers(requiredCountingSumScorer), optionalScorers.size() == 1 ? new SingleMatchScorer(optionalScorers.get(0)) // require 1 in combined, optional scorer. : this.countingDisjunctionSumScorer(optionalScorers)); } }