@Override public Scorer scorer(LeafReaderContext context) throws IOException {
  List<Scorer> scorers=new ArrayList<>();
  for (  Weight w : weights) {
    Scorer subScorer=w.scorer(context);
    if (subScorer != null) {
      scorers.add(subScorer);
    }
  }
  if (scorers.isEmpty()) {
    return null;
  }
 else   if (scorers.size() == 1) {
    return scorers.get(0);
  }
 else {
    return new DisjunctionMaxScorer(this,tieBreakerMultiplier,scorers,needsScores);
  }
}

@ Override public Scorer scorer ( LeafReaderContext context ) throws IOException { List < Scorer > scorers = new ArrayList < > ( ) ; for ( Weight w : weights ) { Scorer subScorer = w . scorer ( context ) ; if ( subScorer != null ) { scorers . add ( subScorer ) ; } } if ( scorers . isEmpty ( ) ) { return null ; } else if ( scorers . size ( ) == 1 ) { return scorers . get ( 0 ) ; } else { return new DisjunctionMaxScorer ( this , tieBreakerMultiplier , scorers , needsScores ) ; } }
create the scorer used to score our associated disjunctionmaxquery
