You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/02/16 23:39:36 UTC

svn commit: r1071427 - in /lucene/dev/branches/branch_3x: ./ lucene/ lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java solr/

Author: rmuir
Date: Wed Feb 16 22:39:36 2011
New Revision: 1071427

URL: http://svn.apache.org/viewvc?rev=1071427&view=rev
Log:
backport some tests from trunk

Added:
    lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java
      - copied, changed from r1071382, lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java
    lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java
      - copied, changed from r1071382, lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java
Modified:
    lucene/dev/branches/branch_3x/   (props changed)
    lucene/dev/branches/branch_3x/lucene/   (props changed)
    lucene/dev/branches/branch_3x/solr/   (props changed)

Copied: lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java (from r1071382, lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java?p2=lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java&p1=lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java&r1=1071382&r2=1071427&rev=1071427&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java Wed Feb 16 22:39:36 2011
@@ -20,18 +20,12 @@ package org.apache.lucene.search;
 import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.index.codecs.CodecProvider;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.AttributeSource;
-import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 
@@ -49,19 +43,22 @@ public class TestPrefixRandom extends Lu
     super.setUp();
     dir = newDirectory();
     RandomIndexWriter writer = new RandomIndexWriter(random, dir, 
-        newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.KEYWORD, false))
+        newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(MockAnalyzer.KEYWORD, false))
         .setMaxBufferedDocs(_TestUtil.nextInt(random, 50, 1000)));
     
     Document doc = new Document();
+    Field bogus1 = newField("bogus", "", Field.Store.NO, Field.Index.NOT_ANALYZED_NO_NORMS);
     Field field = newField("field", "", Field.Store.NO, Field.Index.NOT_ANALYZED);
+    Field bogus2 = newField("zbogus", "", Field.Store.NO, Field.Index.NOT_ANALYZED_NO_NORMS);
     doc.add(field);
-
-    // we generate aweful prefixes: good for testing.
-    // but for preflex codec, the test can be very slow, so use less iterations.
-    final String codec = CodecProvider.getDefault().getFieldCodec("field");
-    int num = codec.equals("PreFlex") ? 200 * RANDOM_MULTIPLIER : 2000 * RANDOM_MULTIPLIER;
+    doc.add(bogus1);
+    doc.add(bogus2);
+    
+    int num = 2000 * RANDOM_MULTIPLIER;
     for (int i = 0; i < num; i++) {
       field.setValue(_TestUtil.randomUnicodeString(random, 10));
+      bogus1.setValue(_TestUtil.randomUnicodeString(random, 10));
+      bogus2.setValue(_TestUtil.randomUnicodeString(random, 10));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -79,30 +76,45 @@ public class TestPrefixRandom extends Lu
   
   /** a stupid prefix query that just blasts thru the terms */
   private class DumbPrefixQuery extends MultiTermQuery {
-    private final BytesRef prefix;
+    private final Term prefix;
     
     DumbPrefixQuery(Term term) {
-      super(term.field());
-      prefix = term.bytes();
+      super();
+      prefix = term;
     }
     
     @Override
-    protected TermsEnum getTermsEnum(Terms terms, AttributeSource atts) throws IOException {
-      return new SimplePrefixTermsEnum(terms.iterator(), prefix);
+    protected FilteredTermEnum getEnum(IndexReader reader) throws IOException {
+      return new SimplePrefixTermEnum(reader, prefix);
     }
 
-    private class SimplePrefixTermsEnum extends FilteredTermsEnum {
-      private final BytesRef prefix;
+    private class SimplePrefixTermEnum extends FilteredTermEnum {
+      private final Term prefix;
+      private boolean endEnum;
 
-      private SimplePrefixTermsEnum(TermsEnum tenum, BytesRef prefix) throws IOException {
-        super(tenum);
+      private SimplePrefixTermEnum(IndexReader reader, Term prefix) throws IOException {
         this.prefix = prefix;
-        setInitialSeekTerm(new BytesRef(""));
+        setEnum(reader.terms(new Term(prefix.field(), "")));
+      }
+
+      @Override
+      protected boolean termCompare(Term term) {
+        if (term.field() == prefix.field()) {
+          return term.text().startsWith(prefix.text());
+        } else {
+          endEnum = true;
+          return false;
+        }
       }
-      
+
+      @Override
+      public float difference() {
+        return 1.0F;
+      }
+
       @Override
-      protected AcceptStatus accept(BytesRef term) throws IOException {
-        return term.startsWith(prefix) ? AcceptStatus.YES : AcceptStatus.NO;
+      protected boolean endEnum() {
+        return endEnum;
       }
     }
 

Copied: lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java (from r1071382, lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java?p2=lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java&p1=lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java&r1=1071382&r2=1071427&rev=1071427&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/search/TestWildcardRandom.java Wed Feb 16 22:39:36 2011
@@ -51,12 +51,18 @@ public class TestWildcardRandom extends 
         .setMaxBufferedDocs(_TestUtil.nextInt(random, 50, 1000)));
     
     Document doc = new Document();
+    Field bogus1 = newField("bogus1", "", Field.Store.NO, Field.Index.NOT_ANALYZED_NO_NORMS);
     Field field = newField("field", "", Field.Store.NO, Field.Index.ANALYZED);
+    Field bogus2 = newField("zbogus2", "", Field.Store.NO, Field.Index.NOT_ANALYZED_NO_NORMS);
     doc.add(field);
+    doc.add(bogus1);
+    doc.add(bogus2);
     
     NumberFormat df = new DecimalFormat("0000", new DecimalFormatSymbols(Locale.ENGLISH));
     for (int i = 0; i < 10000; i++) {
       field.setValue(df.format(i));
+      bogus1.setValue(_TestUtil.randomUnicodeString(random, 10));
+      bogus2.setValue(_TestUtil.randomUnicodeString(random, 10));
       writer.addDocument(doc);
     }
     
@@ -99,7 +105,7 @@ public class TestWildcardRandom extends 
   }
   
   public void testWildcards() throws Exception {;
-    int num = 100 * RANDOM_MULTIPLIER;
+    int num = 50 * RANDOM_MULTIPLIER;
     for (int i = 0; i < num; i++) {
       assertPatternHits("NNNN", 1);
       assertPatternHits("?NNN", 10);
@@ -108,7 +114,7 @@ public class TestWildcardRandom extends 
       assertPatternHits("NNN?", 10);
     }
     
-    num = 10 * RANDOM_MULTIPLIER;
+    num = 5 * RANDOM_MULTIPLIER;
     for (int i = 0; i < num; i++) {
       assertPatternHits("??NN", 100);
       assertPatternHits("N??N", 100);