You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2013/01/20 20:38:01 UTC
svn commit: r1435927 -
/lucene/dev/branches/lucene4547/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
Author: mikemccand
Date: Sun Jan 20 19:38:01 2013
New Revision: 1435927
URL: http://svn.apache.org/viewvc?rev=1435927&view=rev
Log:
always index a DV value, else we have null/empty-string problems depending on how docs mapped to segments
Modified:
lucene/dev/branches/lucene4547/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
Modified: lucene/dev/branches/lucene4547/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java?rev=1435927&r1=1435926&r2=1435927&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java (original)
+++ lucene/dev/branches/lucene4547/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java Sun Jan 20 19:38:01 2013
@@ -644,8 +644,8 @@ public class TestGrouping extends Lucene
// B/c of DV based impl we can't see the difference between an empty string and a null value.
// For that reason we don't generate empty string
// groups.
- //randomValue = _TestUtil.randomRealisticUnicodeString(random());
- randomValue = _TestUtil.randomSimpleString(random());
+ randomValue = _TestUtil.randomRealisticUnicodeString(random());
+ //randomValue = _TestUtil.randomSimpleString(random());
} while ("".equals(randomValue));
groups.add(new BytesRef(randomValue));
@@ -680,6 +680,7 @@ public class TestGrouping extends Lucene
Field idvGroupField = new SortedBytesDocValuesField("group_dv", new BytesRef());
if (canUseIDV) {
doc.add(idvGroupField);
+ docNoGroup.add(idvGroupField);
}
Field group = newStringField("group", "", Field.Store.NO);
@@ -721,6 +722,11 @@ public class TestGrouping extends Lucene
if (canUseIDV) {
idvGroupField.setBytesValue(BytesRef.deepCopyOf(groupDoc.group));
}
+ } else if (canUseIDV) {
+ // Must explicitly set empty string, else eg if
+ // the segment has all docs missing the field then
+ // we get null back instead of empty BytesRef:
+ idvGroupField.setBytesValue(new BytesRef());
}
sort1.setStringValue(groupDoc.sort1.utf8ToString());
sort2.setStringValue(groupDoc.sort2.utf8ToString());
@@ -853,6 +859,9 @@ public class TestGrouping extends Lucene
if (canUseIDV && random().nextBoolean()) {
groupField += "_dv";
}
+ if (VERBOSE) {
+ System.out.println(" groupField=" + groupField);
+ }
final AbstractFirstPassGroupingCollector<?> c1 = createRandomFirstPassCollector(groupField, groupSort, groupOffset+topNGroups);
final CachingCollector cCache;
final Collector c;
@@ -894,6 +903,7 @@ public class TestGrouping extends Lucene
// Search top reader:
final Query query = new TermQuery(new Term("content", searchTerm));
+
s.search(query, c);
if (doCache && !useWrappingCollector) {
@@ -981,7 +991,7 @@ public class TestGrouping extends Lucene
} else {
System.out.println("TEST: expected groups totalGroupedHitCount=" + expectedGroups.totalGroupedHitCount);
for(GroupDocs<BytesRef> gd : expectedGroups.groups) {
- System.out.println(" group=" + (gd.groupValue == null ? "null" : gd.groupValue) + " totalHits=" + gd.totalHits);
+ System.out.println(" group=" + (gd.groupValue == null ? "null" : gd.groupValue) + " totalHits=" + gd.totalHits + " scoreDocs.len=" + gd.scoreDocs.length);
for(ScoreDoc sd : gd.scoreDocs) {
System.out.println(" id=" + sd.doc + " score=" + sd.score);
}