mirror of https://github.com/apache/lucene.git
SOLR-9410: Make ReRankQParserPlugin's private ReRankWeight a public class of its own.
This commit is contained in:
parent
7ddd57b2ac
commit
1af873f53e
|
@ -274,6 +274,8 @@ Other Changes
|
|||
* SOLR-9092: For the delete replica command we attempt to send the core admin delete request only
|
||||
if that node is actually up. (Jessica Cheng Mallet, Varun Thacker)
|
||||
|
||||
* SOLR-9410: Make ReRankQParserPlugin's private ReRankWeight a public class of its own. (Christine Poerschke)
|
||||
|
||||
================== 6.1.0 ==================
|
||||
|
||||
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
|
||||
|
|
|
@ -25,8 +25,6 @@ import com.carrotsearch.hppc.IntIntHashMap;
|
|||
|
||||
import org.apache.lucene.index.IndexReader;
|
||||
import org.apache.lucene.index.LeafReaderContext;
|
||||
import org.apache.lucene.search.FilterWeight;
|
||||
import org.apache.lucene.search.Explanation;
|
||||
import org.apache.lucene.search.IndexSearcher;
|
||||
import org.apache.lucene.search.LeafCollector;
|
||||
import org.apache.lucene.search.MatchAllDocsQuery;
|
||||
|
@ -188,23 +186,8 @@ public class ReRankQParserPlugin extends QParserPlugin {
|
|||
}
|
||||
|
||||
public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws IOException{
|
||||
return new ReRankWeight(mainQuery, reRankQueryRescorer, searcher, needsScores, boost);
|
||||
}
|
||||
}
|
||||
|
||||
private class ReRankWeight extends FilterWeight {
|
||||
private IndexSearcher searcher;
|
||||
final private Rescorer reRankQueryRescorer;
|
||||
|
||||
public ReRankWeight(Query mainQuery, Rescorer reRankQueryRescorer, IndexSearcher searcher, boolean needsScores, float boost) throws IOException {
|
||||
super(mainQuery, mainQuery.createWeight(searcher, needsScores, boost));
|
||||
this.searcher = searcher;
|
||||
this.reRankQueryRescorer = reRankQueryRescorer;
|
||||
}
|
||||
|
||||
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
|
||||
Explanation mainExplain = in.explain(context, doc);
|
||||
return reRankQueryRescorer.explain(searcher, mainExplain, context.docBase+doc);
|
||||
final Weight mainWeight = mainQuery.createWeight(searcher, needsScores, boost);
|
||||
return new ReRankWeight(mainQuery, reRankQueryRescorer, searcher, mainWeight);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.solr.search;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.lucene.index.LeafReaderContext;
|
||||
import org.apache.lucene.search.Explanation;
|
||||
import org.apache.lucene.search.FilterWeight;
|
||||
import org.apache.lucene.search.IndexSearcher;
|
||||
import org.apache.lucene.search.Query;
|
||||
import org.apache.lucene.search.Rescorer;
|
||||
import org.apache.lucene.search.Weight;
|
||||
|
||||
/**
|
||||
* A {@code Weight} used by reranking queries.
|
||||
*/
|
||||
public class ReRankWeight extends FilterWeight {
|
||||
|
||||
final private IndexSearcher searcher;
|
||||
final private Rescorer reRankQueryRescorer;
|
||||
|
||||
public ReRankWeight(Query mainQuery, Rescorer reRankQueryRescorer, IndexSearcher searcher, Weight mainWeight) throws IOException {
|
||||
super(mainQuery, mainWeight);
|
||||
this.searcher = searcher;
|
||||
this.reRankQueryRescorer = reRankQueryRescorer;
|
||||
}
|
||||
|
||||
public Explanation explain(LeafReaderContext context, int doc) throws IOException {
|
||||
final Explanation mainExplain = in.explain(context, doc);
|
||||
return reRankQueryRescorer.explain(searcher, mainExplain, context.docBase+doc);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue