You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2010/10/26 15:08:13 UTC
svn commit: r1027532 - in /lucene/dev/trunk/solr: ./
src/java/org/apache/solr/schema/ src/test/org/apache/solr/
Author: yonik
Date: Tue Oct 26 13:08:12 2010
New Revision: 1027532
URL: http://svn.apache.org/viewvc?rev=1027532&view=rev
Log:
SOLR-2195: search grouping - fix MutableValue for sortable numeric types
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableDoubleField.java
lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableFloatField.java
lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableIntField.java
lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableLongField.java
lucene/dev/trunk/solr/src/test/org/apache/solr/TestGroupingSearch.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1027532&r1=1027531&r2=1027532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Tue Oct 26 13:08:12 2010
@@ -249,7 +249,8 @@ New Features
(Martijn van Groningen, Emmanuel Keller, Shalin Shekhar Mangar,
Koji Sekiguchi, Iv�n de Prado, Ryan McKinley, Marc Sturlese, Peter Karich,
Bojan Smid, Charles Hornberger, Dieter Grad, Dmitry Lihachev, Doug Steigerwald,
- Karsten Sperling, Michael Gundlach, Oleg Gnatovskiy, Thomas Traeger, yonik)
+ Karsten Sperling, Michael Gundlach, Oleg Gnatovskiy, Thomas Traeger,
+ Harish Agarwal, yonik)
* SOLR-1316: Create autosuggest component.
(Ankul Garg, Jason Rutherglen, Shalin Shekhar Mangar, gsingers, Robert Muir, ab)
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableDoubleField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableDoubleField.java?rev=1027532&r1=1027531&r2=1027532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableDoubleField.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableDoubleField.java Tue Oct 26 13:08:12 2010
@@ -20,6 +20,8 @@ package org.apache.solr.schema;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
import org.apache.noggit.CharArr;
+import org.apache.solr.search.MutableValueDouble;
+import org.apache.solr.search.MutableValue;
import org.apache.solr.search.function.ValueSource;
import org.apache.solr.search.function.FieldCacheSource;
import org.apache.solr.search.function.DocValues;
@@ -133,6 +135,23 @@ class SortableDoubleFieldSource extends
public String toString(int doc) {
return description() + '=' + doubleVal(doc);
}
+
+ @Override
+ public ValueFiller getValueFiller() {
+ return new ValueFiller() {
+ private final MutableValueDouble mval = new MutableValueDouble();
+
+ @Override
+ public MutableValue getValue() {
+ return mval;
+ }
+
+ @Override
+ public void fillValue(int doc) {
+ mval.value = doubleVal(doc);
+ }
+ };
+ }
};
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableFloatField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableFloatField.java?rev=1027532&r1=1027531&r2=1027532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableFloatField.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableFloatField.java Tue Oct 26 13:08:12 2010
@@ -20,6 +20,8 @@ package org.apache.solr.schema;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
import org.apache.noggit.CharArr;
+import org.apache.solr.search.MutableValueFloat;
+import org.apache.solr.search.MutableValue;
import org.apache.solr.search.function.ValueSource;
import org.apache.solr.search.function.FieldCacheSource;
import org.apache.solr.search.function.DocValues;
@@ -133,6 +135,23 @@ class SortableFloatFieldSource extends F
public String toString(int doc) {
return description() + '=' + floatVal(doc);
}
+
+ @Override
+ public ValueFiller getValueFiller() {
+ return new ValueFiller() {
+ private final MutableValueFloat mval = new MutableValueFloat();
+
+ @Override
+ public MutableValue getValue() {
+ return mval;
+ }
+
+ @Override
+ public void fillValue(int doc) {
+ mval.value = floatVal(doc);
+ }
+ };
+ }
};
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableIntField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableIntField.java?rev=1027532&r1=1027531&r2=1027532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableIntField.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableIntField.java Tue Oct 26 13:08:12 2010
@@ -20,6 +20,8 @@ package org.apache.solr.schema;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
import org.apache.noggit.CharArr;
+import org.apache.solr.search.MutableValueInt;
+import org.apache.solr.search.MutableValue;
import org.apache.solr.search.function.ValueSource;
import org.apache.solr.search.function.FieldCacheSource;
import org.apache.solr.search.function.DocValues;
@@ -137,6 +139,24 @@ class SortableIntFieldSource extends Fie
public String toString(int doc) {
return description() + '=' + intVal(doc);
}
+
+ @Override
+ public ValueFiller getValueFiller() {
+ return new ValueFiller() {
+ private final MutableValueInt mval = new MutableValueInt();
+
+ @Override
+ public MutableValue getValue() {
+ return mval;
+ }
+
+ @Override
+ public void fillValue(int doc) {
+ mval.value = intVal(doc);
+ }
+ };
+ }
+
};
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableLongField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableLongField.java?rev=1027532&r1=1027531&r2=1027532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableLongField.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/schema/SortableLongField.java Tue Oct 26 13:08:12 2010
@@ -20,6 +20,8 @@ package org.apache.solr.schema;
import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BytesRef;
import org.apache.noggit.CharArr;
+import org.apache.solr.search.MutableValueLong;
+import org.apache.solr.search.MutableValue;
import org.apache.solr.search.function.ValueSource;
import org.apache.solr.search.function.FieldCacheSource;
import org.apache.solr.search.function.DocValues;
@@ -134,6 +136,23 @@ class SortableLongFieldSource extends Fi
public String toString(int doc) {
return description() + '=' + longVal(doc);
}
+
+ @Override
+ public ValueFiller getValueFiller() {
+ return new ValueFiller() {
+ private final MutableValueLong mval = new MutableValueLong();
+
+ @Override
+ public MutableValue getValue() {
+ return mval;
+ }
+
+ @Override
+ public void fillValue(int doc) {
+ mval.value = longVal(doc);
+ }
+ };
+ }
};
}
Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/TestGroupingSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/TestGroupingSearch.java?rev=1027532&r1=1027531&r2=1027532&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/TestGroupingSearch.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/TestGroupingSearch.java Tue Oct 26 13:08:12 2010
@@ -37,11 +37,11 @@ public class TestGroupingSearch extends
@Test
public void testGroupingGroupSortingScore_basic() {
- assertU(add(doc("id", "1","name", "author1", "title", "a book title")));
- assertU(add(doc("id", "2","name", "author1", "title", "the title")));
- assertU(add(doc("id", "3","name", "author2", "title", "a book title")));
- assertU(add(doc("id", "4","name", "author2", "title", "title")));
- assertU(add(doc("id", "5","name", "author3", "title", "the title of a title")));
+ assertU(add(doc("id", "1","name", "author1", "title", "a book title", "group_si", "1")));
+ assertU(add(doc("id", "2","name", "author1", "title", "the title", "group_si", "2")));
+ assertU(add(doc("id", "3","name", "author2", "title", "a book title", "group_si", "1")));
+ assertU(add(doc("id", "4","name", "author2", "title", "title", "group_si", "2")));
+ assertU(add(doc("id", "5","name", "author3", "title", "the title of a title", "group_si", "1")));
assertU(commit());
assertQ(req("q","title:title", "group", "true", "group.field","name")
@@ -63,6 +63,19 @@ public class TestGroupingSearch extends
,"//arr[@name='groups']/lst[3]/result[@numFound='1']"
,"//arr[@name='groups']/lst[3]/result/doc/*[@name='id'][.='5']"
);
+
+ assertQ(req("q","title:title", "group", "true", "group.field","group_si")
+ ,"//lst[@name='grouped']/lst[@name='group_si']"
+ ,"*[count(//arr[@name='groups']/lst) = 2]"
+
+ ,"//arr[@name='groups']/lst[1]/int[@name='groupValue'][.='2']"
+ ,"//arr[@name='groups']/lst[1]/result[@numFound='2']"
+ ,"//arr[@name='groups']/lst[1]/result/doc/*[@name='id'][.='4']"
+
+ ,"//arr[@name='groups']/lst[2]/int[@name='groupValue'][.='1']"
+ ,"//arr[@name='groups']/lst[2]/result[@numFound='3']"
+ ,"//arr[@name='groups']/lst[2]/result/doc/*[@name='id'][.='5']"
+ );
}
@Test