You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/07/26 01:35:21 UTC
svn commit: r1365838 - in /lucene/dev/branches/branch_4x: ./ lucene/
lucene/core/ lucene/core/src/java/org/apache/lucene/search/payloads/
Author: rmuir
Date: Wed Jul 25 23:35:20 2012
New Revision: 1365838
URL: http://svn.apache.org/viewvc?rev=1365838&view=rev
Log:
LUCENE-4250: fix trap in PayloadFunction explain API
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/lucene/core/ (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadFunction.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java
lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java
Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1365838&r1=1365837&r2=1365838&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Wed Jul 25 23:35:20 2012
@@ -62,6 +62,10 @@ API Changes
at all. If you want to tweak things like positionIncrementGap and offsetGap,
analyze the field with KeywordTokenizer instead. (Grant Ingersoll, Robert Muir)
+* LUCENE-4250: Pass fieldName to the PayloadFunction explain method, so it
+ parallels with docScore and the default implementation is correct.
+ (Robert Muir)
+
Optimizations
* LUCENE-4171: Performance improvements to Packed64.
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java?rev=1365838&r1=1365837&r2=1365838&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/AveragePayloadFunction.java Wed Jul 25 23:35:20 2012
@@ -1,6 +1,5 @@
package org.apache.lucene.search.payloads;
-import org.apache.lucene.search.Explanation;
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -36,14 +35,6 @@ public class AveragePayloadFunction exte
public float docScore(int docId, String field, int numPayloadsSeen, float payloadScore) {
return numPayloadsSeen > 0 ? (payloadScore / numPayloadsSeen) : 1;
}
- @Override
- public Explanation explain(int doc, int numPayloadsSeen, float payloadScore) {
- Explanation payloadBoost = new Explanation();
- float avgPayloadScore = (numPayloadsSeen > 0 ? (payloadScore / numPayloadsSeen) : 1);
- payloadBoost.setValue(avgPayloadScore);
- payloadBoost.setDescription("AveragePayloadFunction(...)");
- return payloadBoost;
- }
@Override
public int hashCode() {
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java?rev=1365838&r1=1365837&r2=1365838&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MaxPayloadFunction.java Wed Jul 25 23:35:20 2012
@@ -1,6 +1,5 @@
package org.apache.lucene.search.payloads;
-import org.apache.lucene.search.Explanation;
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -41,14 +40,6 @@ public class MaxPayloadFunction extends
}
@Override
- public Explanation explain(int doc, int numPayloadsSeen, float payloadScore) {
- Explanation expl = new Explanation();
- float maxPayloadScore = (numPayloadsSeen > 0 ? payloadScore : 1);
- expl.setValue(maxPayloadScore);
- expl.setDescription("MaxPayloadFunction(...)");
- return expl;
- }
- @Override
public int hashCode() {
final int prime = 31;
int result = 1;
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java?rev=1365838&r1=1365837&r2=1365838&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/MinPayloadFunction.java Wed Jul 25 23:35:20 2012
@@ -1,6 +1,5 @@
package org.apache.lucene.search.payloads;
-import org.apache.lucene.search.Explanation;
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -39,14 +38,6 @@ public class MinPayloadFunction extends
}
@Override
- public Explanation explain(int doc, int numPayloadsSeen, float payloadScore) {
- Explanation expl = new Explanation();
- float minPayloadScore = (numPayloadsSeen > 0 ? payloadScore : 1);
- expl.setValue(minPayloadScore);
- expl.setDescription("MinPayloadFunction(...)");
- return expl;
- }
- @Override
public int hashCode() {
final int prime = 31;
int result = 1;
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadFunction.java?rev=1365838&r1=1365837&r2=1365838&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadFunction.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadFunction.java Wed Jul 25 23:35:20 2012
@@ -55,10 +55,10 @@ public abstract class PayloadFunction {
*/
public abstract float docScore(int docId, String field, int numPayloadsSeen, float payloadScore);
- public Explanation explain(int docId, int numPayloadsSeen, float payloadScore){
+ public Explanation explain(int docId, String field, int numPayloadsSeen, float payloadScore){
Explanation result = new Explanation();
- result.setDescription("Unimpl Payload Function Explain");
- result.setValue(1);
+ result.setDescription(getClass().getSimpleName() + ".docScore()");
+ result.setValue(docScore(docId, field, numPayloadsSeen, payloadScore));
return result;
};
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java?rev=1365838&r1=1365837&r2=1365838&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java Wed Jul 25 23:35:20 2012
@@ -167,8 +167,9 @@ public class PayloadNearQuery extends Sp
Explanation scoreExplanation = docScorer.explain(doc, new Explanation(freq, "phraseFreq=" + freq));
expl.addDetail(scoreExplanation);
expl.setValue(scoreExplanation.getValue());
+ String field = ((SpanQuery)getQuery()).getField();
// now the payloads part
- Explanation payloadExpl = function.explain(doc, scorer.payloadsSeen, scorer.payloadScore);
+ Explanation payloadExpl = function.explain(doc, field, scorer.payloadsSeen, scorer.payloadScore);
// combined
ComplexExplanation result = new ComplexExplanation();
result.addDetail(expl);
Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java?rev=1365838&r1=1365837&r2=1365838&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java Wed Jul 25 23:35:20 2012
@@ -28,6 +28,7 @@ import org.apache.lucene.search.ComplexE
import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.search.similarities.Similarity.SloppySimScorer;
+import org.apache.lucene.search.spans.SpanQuery;
import org.apache.lucene.search.spans.TermSpans;
import org.apache.lucene.search.spans.SpanTermQuery;
import org.apache.lucene.search.spans.SpanWeight;
@@ -190,7 +191,8 @@ public class PayloadTermQuery extends Sp
// whether to load the payload or not
// GSI: I suppose we could toString the payload, but I don't think that
// would be a good idea
- Explanation payloadExpl = function.explain(doc, scorer.payloadsSeen, scorer.payloadScore);
+ String field = ((SpanQuery)getQuery()).getField();
+ Explanation payloadExpl = function.explain(doc, field, scorer.payloadsSeen, scorer.payloadScore);
payloadExpl.setValue(scorer.getPayloadScore());
// combined
ComplexExplanation result = new ComplexExplanation();