You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2016/12/08 18:44:11 UTC
[12/13] lucene-solr:branch_6x: SOLR-8542: master-to-branch_6x
backport changes (Michael Nilsson, Naveen Santhapuri, Christine Poerschke)
SOLR-8542: master-to-branch_6x backport changes (Michael Nilsson, Naveen Santhapuri, Christine Poerschke)
* removed 'boost' arg from LTRScoringQuery.createWeight signature
* classes extending Weight now implement normalize and getValueForNormalization
* FieldLengthFeatureScorer tweaks
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/9e8dd854
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/9e8dd854
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/9e8dd854
Branch: refs/heads/branch_6x
Commit: 9e8dd854cda6d56cc8d498cc23d138eeb74732fd
Parents: 3e26572
Author: Christine Poerschke <cp...@apache.org>
Authored: Thu Dec 8 12:54:31 2016 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Thu Dec 8 18:04:07 2016 +0000
----------------------------------------------------------------------
.../java/org/apache/solr/ltr/LTRScoringQuery.java | 14 +++++++++++++-
.../apache/solr/ltr/feature/FieldLengthFeature.java | 14 ++++++++++++--
.../apache/solr/ltr/feature/FieldValueFeature.java | 10 ++++++++++
.../solr/ltr/feature/OriginalScoreFeature.java | 10 ++++++++++
.../org/apache/solr/ltr/feature/SolrFeature.java | 16 ++++++++++++++++
.../org/apache/solr/ltr/feature/ValueFeature.java | 10 ++++++++++
.../LTRFeatureLoggerTransformerFactory.java | 2 +-
.../apache/solr/ltr/TestLTRReRankingPipeline.java | 4 ++--
8 files changed, 74 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java
index d60ebf5..b43f955 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/LTRScoringQuery.java
@@ -187,7 +187,7 @@ public class LTRScoringQuery extends Query {
}
@Override
- public ModelWeight createWeight(IndexSearcher searcher, boolean needsScores, float boost)
+ public ModelWeight createWeight(IndexSearcher searcher, boolean needsScores)
throws IOException {
final Collection<Feature> modelFeatures = ltrScoringModel.getFeatures();
final Collection<Feature> allFeatures = ltrScoringModel.getAllFeatures();
@@ -459,6 +459,18 @@ public class LTRScoringQuery extends Query {
}
@Override
+ public float getValueForNormalization() throws IOException {
+ return 1f;
+ }
+
+ @Override
+ public void normalize(float norm, float boost) {
+ for (final Feature.FeatureWeight featureWeight : extractedFeatureWeights) {
+ featureWeight.normalize(norm, boost);
+ }
+ }
+
+ @Override
public ModelScorer scorer(LeafReaderContext context) throws IOException {
final List<Feature.FeatureWeight.FeatureScorer> featureScorers = new ArrayList<Feature.FeatureWeight.FeatureScorer>(
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldLengthFeature.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldLengthFeature.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldLengthFeature.java
index 4c17aff..3b6f866 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldLengthFeature.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldLengthFeature.java
@@ -112,6 +112,16 @@ public class FieldLengthFeature extends Feature {
}
@Override
+ public float getValueForNormalization() throws IOException {
+ return 1f;
+ }
+
+ @Override
+ public void normalize(float norm, float boost) {
+ // no op
+ }
+
+ @Override
public FeatureScorer scorer(LeafReaderContext context) throws IOException {
NumericDocValues norms = context.reader().getNormValues(field);
if (norms == null){
@@ -127,7 +137,7 @@ public class FieldLengthFeature extends Feature {
public FieldLengthFeatureScorer(FeatureWeight weight,
NumericDocValues norms) throws IOException {
- super(weight, norms);
+ super(weight, DocIdSetIterator.all(DocIdSetIterator.NO_MORE_DOCS));
this.norms = norms;
// In the constructor, docId is -1, so using 0 as default lookup
@@ -142,7 +152,7 @@ public class FieldLengthFeature extends Feature {
@Override
public float score() throws IOException {
- final long l = norms.longValue();
+ final long l = norms.get(itr.docID());
final float numTerms = decodeNorm(l);
return numTerms;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldValueFeature.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldValueFeature.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldValueFeature.java
index 5fcf144..4829378 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldValueFeature.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/FieldValueFeature.java
@@ -90,6 +90,16 @@ public class FieldValueFeature extends Feature {
}
@Override
+ public float getValueForNormalization() throws IOException {
+ return 1f;
+ }
+
+ @Override
+ public void normalize(float norm, float boost) {
+ // no op
+ }
+
+ @Override
public FeatureScorer scorer(LeafReaderContext context) throws IOException {
return new FieldValueFeatureScorer(this, context,
DocIdSetIterator.all(DocIdSetIterator.NO_MORE_DOCS));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/OriginalScoreFeature.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/OriginalScoreFeature.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/OriginalScoreFeature.java
index 549880b..f402f32 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/OriginalScoreFeature.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/OriginalScoreFeature.java
@@ -84,6 +84,16 @@ public class OriginalScoreFeature extends Feature {
}
@Override
+ public float getValueForNormalization() throws IOException {
+ return w.getValueForNormalization();
+ }
+
+ @Override
+ public void normalize(float norm, float boost) {
+ w.normalize(norm, boost);
+ }
+
+ @Override
public FeatureScorer scorer(LeafReaderContext context) throws IOException {
final Scorer originalScorer = w.scorer(context);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java
index 13eb96f..7fff934 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java
@@ -213,6 +213,22 @@ public class SolrFeature extends Feature {
}
@Override
+ public float getValueForNormalization() throws IOException {
+ if (solrQueryWeight != null) {
+ return solrQueryWeight.getValueForNormalization();
+ } else {
+ return 0f;
+ }
+ }
+
+ @Override
+ public void normalize(float norm, float boost) {
+ if (solrQueryWeight != null) {
+ solrQueryWeight.normalize(norm, boost);
+ }
+ }
+
+ @Override
public FeatureScorer scorer(LeafReaderContext context) throws IOException {
Scorer solrScorer = null;
if (solrQueryWeight != null) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/ValueFeature.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/ValueFeature.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/ValueFeature.java
index 61aa9e5..b020fdc 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/ValueFeature.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/feature/ValueFeature.java
@@ -130,6 +130,16 @@ public class ValueFeature extends Feature {
}
@Override
+ public float getValueForNormalization() throws IOException {
+ return 1f;
+ }
+
+ @Override
+ public void normalize(float norm, float boost) {
+ // no op
+ }
+
+ @Override
public FeatureScorer scorer(LeafReaderContext context) throws IOException {
if(featureValue!=null) {
return new ValueFeatureScorer(this, featureValue,
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
index 93ebe63..f19db3b 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
@@ -199,7 +199,7 @@ public class LTRFeatureLoggerTransformerFactory extends TransformerFactory {
featureLogger = scoringQuery.getFeatureLogger();
try {
- modelWeight = scoringQuery.createWeight(searcher, true, 1f);
+ modelWeight = scoringQuery.createWeight(searcher, true);
} catch (final IOException e) {
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e.getMessage(), e);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9e8dd854/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTRReRankingPipeline.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTRReRankingPipeline.java b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTRReRankingPipeline.java
index a98fc4f..6c43afa 100644
--- a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTRReRankingPipeline.java
+++ b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestLTRReRankingPipeline.java
@@ -273,7 +273,7 @@ public class TestLTRReRankingPipeline extends LuceneTestCase {
MockModel ltrScoringModel = new MockModel("test",
features, norms, "test", allFeatures, null);
LTRScoringQuery query = new LTRScoringQuery(ltrScoringModel);
- LTRScoringQuery.ModelWeight wgt = query.createWeight(null, true, 1f);
+ LTRScoringQuery.ModelWeight wgt = query.createWeight(null, true);
LTRScoringQuery.ModelWeight.ModelScorer modelScr = wgt.scorer(null);
modelScr.getDocInfo().setOriginalDocScore(new Float(1f));
for (final Scorer.ChildScorer feat : modelScr.getChildren()) {
@@ -289,7 +289,7 @@ public class TestLTRReRankingPipeline extends LuceneTestCase {
ltrScoringModel = new MockModel("test", features, norms,
"test", allFeatures, null);
query = new LTRScoringQuery(ltrScoringModel);
- wgt = query.createWeight(null, true, 1f);
+ wgt = query.createWeight(null, true);
modelScr = wgt.scorer(null);
modelScr.getDocInfo().setOriginalDocScore(new Float(1f));
for (final Scorer.ChildScorer feat : modelScr.getChildren()) {