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 2014/01/15 22:08:20 UTC
svn commit: r1558565 -
/lucene/dev/branches/lucene539399/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
Author: mikemccand
Date: Wed Jan 15 21:08:19 2014
New Revision: 1558565
URL: http://svn.apache.org/r1558565
Log:
LUCENE-5399: add fangs, but no new bugs found...
Modified:
lucene/dev/branches/lucene539399/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
Modified: lucene/dev/branches/lucene539399/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene539399/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java?rev=1558565&r1=1558564&r2=1558565&view=diff
==============================================================================
--- lucene/dev/branches/lucene539399/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java (original)
+++ lucene/dev/branches/lucene539399/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java Wed Jan 15 21:08:19 2014
@@ -50,10 +50,75 @@ public class TestSearchAfter extends Luc
private IndexReader reader;
private IndexSearcher searcher;
private int iter;
+ private List<SortField> allSortFields;
@Override
public void setUp() throws Exception {
super.setUp();
+
+ allSortFields = new ArrayList<SortField>(Arrays.asList(new SortField[] {
+ new SortField("int", SortField.Type.INT, false),
+ new SortField("long", SortField.Type.LONG, false),
+ new SortField("float", SortField.Type.FLOAT, false),
+ new SortField("double", SortField.Type.DOUBLE, false),
+ new SortField("bytes", SortField.Type.STRING, false),
+ new SortField("bytesval", SortField.Type.STRING_VAL, false),
+ new SortField("intdocvalues", SortField.Type.INT, false),
+ new SortField("floatdocvalues", SortField.Type.FLOAT, false),
+ new SortField("sortedbytesdocvalues", SortField.Type.STRING, false),
+ new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, false),
+ new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, false),
+ new SortField("int", SortField.Type.INT, true),
+ new SortField("long", SortField.Type.LONG, true),
+ new SortField("float", SortField.Type.FLOAT, true),
+ new SortField("double", SortField.Type.DOUBLE, true),
+ new SortField("bytes", SortField.Type.STRING, true),
+ new SortField("bytesval", SortField.Type.STRING_VAL, true),
+ new SortField("intdocvalues", SortField.Type.INT, true),
+ new SortField("floatdocvalues", SortField.Type.FLOAT, true),
+ new SortField("sortedbytesdocvalues", SortField.Type.STRING, true),
+ new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, true),
+ new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, true),
+ SortField.FIELD_SCORE,
+ SortField.FIELD_DOC,
+ }));
+
+ // Also test missing first / last for the "string" sorts:
+ for(String field : new String[] {"bytes", "sortedbytesdocvalues"}) {
+ for(int rev=0;rev<2;rev++) {
+ boolean reversed = rev == 0;
+ SortField sf = new SortField(field, SortField.Type.STRING, reversed);
+ sf.setMissingValue(SortField.STRING_FIRST);
+ allSortFields.add(sf);
+
+ sf = new SortField(field, SortField.Type.STRING, reversed);
+ sf.setMissingValue(SortField.STRING_LAST);
+ allSortFields.add(sf);
+ }
+ }
+
+ int limit = allSortFields.size();
+ for(int i=0;i<limit;i++) {
+ SortField sf = allSortFields.get(i);
+ if (sf.getType() == SortField.Type.INT) {
+ SortField sf2 = new SortField(sf.getField(), SortField.Type.INT, sf.getReverse());
+ sf2.setMissingValue(random().nextInt());
+ allSortFields.add(sf2);
+ } else if (sf.getType() == SortField.Type.LONG) {
+ SortField sf2 = new SortField(sf.getField(), SortField.Type.LONG, sf.getReverse());
+ sf2.setMissingValue(random().nextLong());
+ allSortFields.add(sf2);
+ } else if (sf.getType() == SortField.Type.FLOAT) {
+ SortField sf2 = new SortField(sf.getField(), SortField.Type.FLOAT, sf.getReverse());
+ sf2.setMissingValue(random().nextFloat());
+ allSortFields.add(sf2);
+ } else if (sf.getType() == SortField.Type.DOUBLE) {
+ SortField sf2 = new SortField(sf.getField(), SortField.Type.DOUBLE, sf.getReverse());
+ sf2.setMissingValue(random().nextDouble());
+ allSortFields.add(sf2);
+ }
+ }
+
dir = newDirectory();
RandomIndexWriter iw = new RandomIndexWriter(random(), dir);
int numDocs = atLeast(200);
@@ -95,7 +160,9 @@ public class TestSearchAfter extends Luc
iw.addDocument(document);
- // nocommit randomly commit so we exercise segments
+ if (random().nextInt(50) == 17) {
+ iw.commit();
+ }
}
reader = iw.getReader();
iw.close();
@@ -130,51 +197,6 @@ public class TestSearchAfter extends Luc
}
}
- static List<SortField> allSortFields = new ArrayList<SortField>(Arrays.asList(new SortField[] {
- new SortField("int", SortField.Type.INT, false),
- new SortField("long", SortField.Type.LONG, false),
- new SortField("float", SortField.Type.FLOAT, false),
- new SortField("double", SortField.Type.DOUBLE, false),
- new SortField("bytes", SortField.Type.STRING, false),
- new SortField("bytesval", SortField.Type.STRING_VAL, false),
- new SortField("intdocvalues", SortField.Type.INT, false),
- new SortField("floatdocvalues", SortField.Type.FLOAT, false),
- new SortField("sortedbytesdocvalues", SortField.Type.STRING, false),
- new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, false),
- new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, false),
- new SortField("int", SortField.Type.INT, true),
- new SortField("long", SortField.Type.LONG, true),
- new SortField("float", SortField.Type.FLOAT, true),
- new SortField("double", SortField.Type.DOUBLE, true),
- new SortField("bytes", SortField.Type.STRING, true),
- new SortField("bytesval", SortField.Type.STRING_VAL, true),
- new SortField("intdocvalues", SortField.Type.INT, true),
- new SortField("floatdocvalues", SortField.Type.FLOAT, true),
- new SortField("sortedbytesdocvalues", SortField.Type.STRING, true),
- new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, true),
- new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, true),
- SortField.FIELD_SCORE,
- SortField.FIELD_DOC,
- }));
-
- static {
- // Also test missing first / last for the "string" sorts:
- for(String field : new String[] {"bytes", "sortedbytesdocvalues"}) {
- for(int rev=0;rev<2;rev++) {
- boolean reversed = rev == 0;
- SortField sf = new SortField(field, SortField.Type.STRING, reversed);
- sf.setMissingValue(SortField.STRING_FIRST);
- allSortFields.add(sf);
-
- sf = new SortField(field, SortField.Type.STRING, reversed);
- sf.setMissingValue(SortField.STRING_LAST);
- allSortFields.add(sf);
- }
- }
-
- // nocommit test missing value for numerics too:
- }
-
void assertQuery(Query query, Filter filter) throws Exception {
assertQuery(query, filter, null);
assertQuery(query, filter, Sort.RELEVANCE);
@@ -203,14 +225,13 @@ public class TestSearchAfter extends Luc
System.out.println("\nassertQuery " + (iter++) + ": query=" + query + " filter=" + filter + " sort=" + sort + " pageSize=" + pageSize);
}
final boolean doMaxScore = random().nextBoolean();
+ final boolean doScores = random().nextBoolean();
if (sort == null) {
- // nocommit randomly sometimes doScores & doMaxScore:
all = searcher.search(query, filter, maxDoc);
} else if (sort == Sort.RELEVANCE) {
all = searcher.search(query, filter, maxDoc, sort, true, doMaxScore);
} else {
- // nocommit randomly sometimes doScores & doMaxScore:
- all = searcher.search(query, filter, maxDoc, sort);
+ all = searcher.search(query, filter, maxDoc, sort, doScores, doMaxScore);
}
if (VERBOSE) {
System.out.println(" all.totalHits=" + all.totalHits);
@@ -227,7 +248,6 @@ public class TestSearchAfter extends Luc
if (VERBOSE) {
System.out.println(" iter lastBottom=" + lastBottom);
}
- // nocommit randomly sometimes doScores & doMaxScore:
paged = searcher.searchAfter(lastBottom, query, filter, pageSize);
} else {
if (VERBOSE) {
@@ -236,8 +256,7 @@ public class TestSearchAfter extends Luc
if (sort == Sort.RELEVANCE) {
paged = searcher.searchAfter(lastBottom, query, filter, pageSize, sort, true, doMaxScore);
} else {
- // nocommit randomly sometimes doScores & doMaxScore:
- paged = searcher.searchAfter(lastBottom, query, filter, pageSize, sort);
+ paged = searcher.searchAfter(lastBottom, query, filter, pageSize, sort, doScores, doMaxScore);
}
}
if (VERBOSE) {