You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2017/02/27 17:48:14 UTC

lucene-solr:branch_6x: SOLR-10208: Adjust scoring formula for the scoreNodes function

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x 4b8223b77 -> c752dc096


SOLR-10208: Adjust scoring formula for the scoreNodes function


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c752dc09
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c752dc09
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c752dc09

Branch: refs/heads/branch_6x
Commit: c752dc096f64c097c5f0b8bbb84152afb4749f27
Parents: 4b8223b
Author: Joel Bernstein <jb...@apache.org>
Authored: Mon Feb 27 12:03:03 2017 -0500
Committer: Joel Bernstein <jb...@apache.org>
Committed: Mon Feb 27 12:43:49 2017 -0500

----------------------------------------------------------------------
 .../solr/client/solrj/io/stream/ScoreNodesStream.java    |  2 +-
 .../client/solrj/io/stream/SignificantTermsStream.java   |  2 +-
 .../solr/client/solrj/io/graph/GraphExpressionTest.java  | 11 +++++------
 3 files changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c752dc09/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ScoreNodesStream.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ScoreNodesStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ScoreNodesStream.java
index 41e7197..f394424 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ScoreNodesStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ScoreNodesStream.java
@@ -237,7 +237,7 @@ public class ScoreNodesStream extends TupleStream implements Expressible
             throw new Exception("termFreq field not present in the Tuple");
           }
           Number termFreqValue = (Number)tuple.get(termFreq);
-          float score = termFreqValue.floatValue() * (float) (Math.log((numDocs + 1) / (docFreq.doubleValue() + 1)) + 1.0);
+          float score = (float)(Math.log(termFreqValue.floatValue())+1.0) * (float) (Math.log((numDocs + 1) / (docFreq.doubleValue() + 1)) + 1.0);
           tuple.put("nodeScore", score);
           tuple.put("docFreq", docFreq);
           tuple.put("numDocs", numDocs);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c752dc09/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SignificantTermsStream.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SignificantTermsStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SignificantTermsStream.java
index f5f8a06..87b5a9f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SignificantTermsStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/SignificantTermsStream.java
@@ -358,7 +358,7 @@ public class SignificantTermsStream extends TupleStream implements Expressible{
           map.put("background", freqs[0]);
           map.put("foreground", freqs[1]);
 
-          float score = (float)Math.log(freqs[1]) * (float) (Math.log(((float)(numDocs + 1)) / (freqs[0] + 1)) + 1.0);
+          float score = (float)(Math.log(freqs[1])+1.0) * (float) (Math.log(((float)(numDocs + 1)) / (freqs[0] + 1)) + 1.0);
 
           map.put("score", score);
           maps.add(map);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c752dc09/solr/solrj/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
index cf07058..33781ef 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/graph/GraphExpressionTest.java
@@ -521,10 +521,10 @@ public class GraphExpressionTest extends SolrCloudTestCase {
         .add(id, "3", "basket_s", "basket2", "product_ss", "product1", "product_ss", "product6", "product_ss", "product7", "price_f", "1")
         .add(id, "6", "basket_s", "basket3", "product_ss", "product4",  "product_ss","product3", "product_ss","product1", "price_f", "1")
         .add(id, "9", "basket_s", "basket4", "product_ss", "product4", "product_ss", "product3", "product_ss", "product1","price_f", "1")
-        .add(id, "12", "basket_s", "basket5", "product_ss", "product1", "price_f", "1")
-        .add(id, "13", "basket_s", "basket6", "product_ss", "product1", "price_f", "1")
-        .add(id, "14", "basket_s", "basket7", "product_ss", "product1", "price_f", "1")
-        .add(id, "15", "basket_s", "basket4", "product_ss", "product1", "price_f", "1")
+        //.add(id, "12", "basket_s", "basket5", "product_ss", "product1", "price_f", "1")
+        //.add(id, "13", "basket_s", "basket6", "product_ss", "product1", "price_f", "1")
+        //.add(id, "14", "basket_s", "basket7", "product_ss", "product1", "price_f", "1")
+        //.add(id, "15", "basket_s", "basket4", "product_ss", "product1", "price_f", "1")
         .commit(cluster.getSolrClient(), COLLECTION);
 
     List<Tuple> tuples = null;
@@ -557,7 +557,6 @@ public class GraphExpressionTest extends SolrCloudTestCase {
     stream.setStreamContext(context);
     tuples = getTuples(stream);
 
-    //The highest scoring tuple will be the product searched for.
     Tuple tuple = tuples.get(0);
     assert(tuple.getString("node").equals("product3"));
     assert(tuple.getLong("docFreq") == 3);
@@ -570,7 +569,7 @@ public class GraphExpressionTest extends SolrCloudTestCase {
 
     Tuple tuple1 = tuples.get(2);
     assert(tuple1.getString("node").equals("product1"));
-    assert(tuple1.getLong("docFreq") == 8);
+    assert(tuple1.getLong("docFreq") == 4);
     assert(tuple1.getLong("count(*)") == 3);
 
     Tuple tuple2 = tuples.get(3);