You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by yo...@apache.org on 2009/11/23 23:17:40 UTC
svn commit: r883522 - in /lucene/solr/trunk/src/java/org/apache/solr/search:
ValueSourceParser.java function/ConstValueSource.java
Author: yonik
Date: Mon Nov 23 22:17:39 2009
New Revision: 883522
URL: http://svn.apache.org/viewvc?rev=883522&view=rev
Log:
constants - only do more expensive conversions once... adds up over an entire index
Modified:
lucene/solr/trunk/src/java/org/apache/solr/search/ValueSourceParser.java
lucene/solr/trunk/src/java/org/apache/solr/search/function/ConstValueSource.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/search/ValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/ValueSourceParser.java?rev=883522&r1=883521&r2=883522&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/ValueSourceParser.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/ValueSourceParser.java Mon Nov 23 22:17:39 2009
@@ -555,9 +555,13 @@
// Private for now - we need to revisit how to handle typing in function queries
class LongConstValueSource extends ValueSource {
final long constant;
+ final double dv;
+ final float fv;
public LongConstValueSource(long constant) {
this.constant = constant;
+ this.dv = constant;
+ this.fv = constant;
}
public String description() {
@@ -567,7 +571,7 @@
public DocValues getValues(Map context, IndexReader reader) throws IOException {
return new DocValues() {
public float floatVal(int doc) {
- return constant;
+ return fv;
}
public int intVal(int doc) {
@@ -579,7 +583,7 @@
}
public double doubleVal(int doc) {
- return constant;
+ return dv;
}
public String strVal(int doc) {
@@ -606,9 +610,13 @@
// Private for now - we need to revisit how to handle typing in function queries
class DoubleConstValueSource extends ValueSource {
final double constant;
+ private final float fv;
+ private final long lv;
public DoubleConstValueSource(double constant) {
this.constant = constant;
+ this.fv = (float)constant;
+ this.lv = (long)constant;
}
public String description() {
@@ -618,15 +626,15 @@
public DocValues getValues(Map context, IndexReader reader) throws IOException {
return new DocValues() {
public float floatVal(int doc) {
- return (float)constant;
+ return fv;
}
public int intVal(int doc) {
- return (int) constant;
+ return (int) lv;
}
public long longVal(int doc) {
- return (long)constant;
+ return lv;
}
public double doubleVal(int doc) {
Modified: lucene/solr/trunk/src/java/org/apache/solr/search/function/ConstValueSource.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/function/ConstValueSource.java?rev=883522&r1=883521&r2=883522&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/function/ConstValueSource.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/function/ConstValueSource.java Mon Nov 23 22:17:39 2009
@@ -27,9 +27,11 @@
*/
public class ConstValueSource extends ValueSource {
final float constant;
+ private final double dv;
public ConstValueSource(float constant) {
this.constant = constant;
+ this.dv = constant;
}
public String description() {
@@ -42,16 +44,16 @@
return constant;
}
public int intVal(int doc) {
- return (int)floatVal(doc);
+ return (int)constant;
}
public long longVal(int doc) {
- return (long)floatVal(doc);
+ return (long)constant;
}
public double doubleVal(int doc) {
- return (double)floatVal(doc);
+ return dv;
}
public String strVal(int doc) {
- return Float.toString(floatVal(doc));
+ return Float.toString(constant);
}
public String toString(int doc) {
return description();
Re: svn commit: r883522 - in /lucene/solr/trunk/src/java/org/apache/solr/search:
ValueSourceParser.java function/ConstValueSource.java
Posted by Chris Hostetter <ho...@fucit.org>.
: Some functions could actually use it - say like ms().
: More could in the future if/when we type our value sources to avoid
: precision loss (i.e. sub(longfield1,longfield2) would work in long
: space, not float space).
my bad ... i tuned out the fact that both new variables had different
types then the original.
-Hoss
Re: svn commit: r883522 - in /lucene/solr/trunk/src/java/org/apache/solr/search:
ValueSourceParser.java function/ConstValueSource.java
Posted by Yonik Seeley <yo...@lucidimagination.com>.
On Mon, Nov 23, 2009 at 5:36 PM, Chris Hostetter
<ho...@fucit.org> wrote:
> : final long constant;
> : + final double dv;
> : + final float fv;
>
> ..can't the "final long constant" be removed completely now?
Some functions could actually use it - say like ms().
More could in the future if/when we type our value sources to avoid
precision loss (i.e. sub(longfield1,longfield2) would work in long
space, not float space).
-Yonik
http://www.lucidimagination.com
Re: svn commit: r883522 - in /lucene/solr/trunk/src/java/org/apache/solr/search:
ValueSourceParser.java function/ConstValueSource.java
Posted by Chris Hostetter <ho...@fucit.org>.
: final long constant;
: + final double dv;
: + final float fv;
..can't the "final long constant" be removed completely now?
-Hoss