You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by to...@apache.org on 2015/03/23 14:58:24 UTC
svn commit: r1668641 -
/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java
Author: tommaso
Date: Mon Mar 23 13:58:24 2015
New Revision: 1668641
URL: http://svn.apache.org/r1668641
Log:
OAK-2666 - wrong update fixed, also fixed lms rule
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java
Modified: jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java?rev=1668641&r1=1668640&r2=1668641&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java Mon Mar 23 13:58:24 2015
@@ -49,15 +49,15 @@ class LMSEstimator {
double[] updatedWeights = new double[weights.length];
long estimate = estimate(filter);
long numFound = docs.getNumFound();
- long delta = numFound - estimate;
+ double delta = Math.pow(numFound - estimate, 2) / 2;
if (Math.abs(delta) > threshold) {
for (int i = 0; i < updatedWeights.length; i++) {
double errors = delta * getInput(filter, i);
updatedWeights[i] = weights[i] + alpha * errors;
}
+ // weights updated
+ weights = Arrays.copyOf(updatedWeights, 5);
}
- // weights updated
- weights = Arrays.copyOf(updatedWeights, 5);
}
long estimate(Filter filter) {