code: @Override
    public MtasSpanWeight createWeight(IndexSearcher searcher,
        boolean needsScores, float boost) throws IOException {
      if (q1 == null || q2 == null) {
        return null;
      } else {
        MtasSpanIntersectingQueryWeight w1 = new MtasSpanIntersectingQueryWeight(
            q1.createWeight(searcher, needsScores, boost));
        MtasSpanIntersectingQueryWeight w2 = new MtasSpanIntersectingQueryWeight(
            q2.createWeight(searcher, needsScores, boost));
        // subWeights
        List<MtasSpanIntersectingQueryWeight> subWeights = new ArrayList<>();
        subWeights.add(w1);
        subWeights.add(w2);
        // return
        return new SpanIntersectingWeight(w1, w2, searcher,
            needsScores ? getTermContexts(subWeights) : null, boost);
      }
    }
docs: /*
  (non-Javadoc)
  
  @see
  org.apache.lucene.search.spans.SpanQuery#createWeight(org.apache.lucene.
  search.IndexSearcher, boolean)