Woops, no! I'll fix ... Mike McCandless
http://blog.mikemccandless.com On Thu, Oct 11, 2012 at 5:06 PM, Robert Muir <[email protected]> wrote: > Did you intend to also commit the original test to TestStandardFactories? > > On Thu, Oct 11, 2012 at 4:22 PM, <[email protected]> wrote: >> Author: mikemccand >> Date: Thu Oct 11 20:22:14 2012 >> New Revision: 1397282 >> >> URL: http://svn.apache.org/viewvc?rev=1397282&view=rev >> Log: >> LUCENE-4477/LUCENE-4401: add test case >> >> Modified: >> >> lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java >> >> lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java >> >> Modified: >> lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java >> URL: >> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java?rev=1397282&r1=1397281&r2=1397282&view=diff >> ============================================================================== >> --- >> lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java >> (original) >> +++ >> lucene/dev/trunk/lucene/analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java >> Thu Oct 11 20:22:14 2012 >> @@ -17,12 +17,14 @@ package org.apache.lucene.analysis.stand >> * limitations under the License. >> */ >> >> +import java.io.IOException; >> import java.io.Reader; >> import java.io.StringReader; >> import java.util.Collections; >> import java.util.HashMap; >> import java.util.Map; >> >> +import org.apache.lucene.analysis.Analyzer; >> import org.apache.lucene.analysis.BaseTokenStreamTestCase; >> import org.apache.lucene.analysis.MockTokenizer; >> import org.apache.lucene.analysis.TokenStream; >> @@ -32,6 +34,23 @@ import org.apache.lucene.analysis.core.L >> import org.apache.lucene.analysis.core.LowerCaseTokenizerFactory; >> import org.apache.lucene.analysis.core.WhitespaceTokenizerFactory; >> import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory; >> +import org.apache.lucene.analysis.util.CharArraySet; >> +import org.apache.lucene.document.Document; >> +import org.apache.lucene.document.Field; >> +import org.apache.lucene.document.TextField; >> +import org.apache.lucene.index.DirectoryReader; >> +import org.apache.lucene.index.IndexReader; >> +import org.apache.lucene.index.IndexWriter; >> +import org.apache.lucene.index.IndexWriterConfig; >> +import org.apache.lucene.index.Term; >> +import org.apache.lucene.search.BooleanClause; >> +import org.apache.lucene.search.BooleanQuery; >> +import org.apache.lucene.search.IndexSearcher; >> +import org.apache.lucene.search.ScoreDoc; >> +import org.apache.lucene.search.TopScoreDocCollector; >> +import org.apache.lucene.search.spans.SpanQuery; >> +import org.apache.lucene.search.spans.SpanTermQuery; >> +import org.apache.lucene.store.Directory; >> >> /** >> * Simple tests to ensure the standard lucene factories are working. >> @@ -188,4 +207,48 @@ public class TestStandardFactories exten >> TokenStream stream = factory.create(tokenizer); >> assertTokenStreamContents(stream, new String[] { "Ceska" }); >> } >> + >> + public void testBooleanSpanQuery() throws Exception { >> + boolean failed = false; >> + int hits = 0; >> + Directory directory = newDirectory(); >> + try{ >> + CharArraySet stops = CharArraySet.EMPTY_SET; >> + Analyzer indexerAnalyzer = new StandardAnalyzer(TEST_VERSION_CURRENT, >> stops); >> + //Analyzer indexerAnalyzer = new >> MockAnalyzer(LuceneProjectVersion.LUCENE_VERSION); >> + //Directory directory = new RAMDirectory(); >> + >> + IndexWriterConfig config = new >> IndexWriterConfig(TEST_VERSION_CURRENT, indexerAnalyzer); >> + IndexWriter writer = new IndexWriter(directory, config); >> + String FIELD = "content"; >> + Document d = new Document(); >> + d.add(new TextField(FIELD, "clockwork orange", Field.Store.YES)); >> + writer.addDocument(d); >> + writer.close(); >> + >> + IndexReader indexReader = DirectoryReader.open(directory); >> + IndexSearcher searcher = new IndexSearcher(indexReader); >> + >> + BooleanQuery query = new BooleanQuery(); >> + SpanQuery sq1 = new SpanTermQuery(new Term(FIELD, "clockwork")); >> + SpanQuery sq2 = new SpanTermQuery(new Term(FIELD, "clckwork")); >> + query.add(sq1, BooleanClause.Occur.SHOULD); >> + query.add(sq2, BooleanClause.Occur.SHOULD); >> + TopScoreDocCollector collector = TopScoreDocCollector.create(1000, >> true); >> + searcher.search(query, collector); >> + hits = collector.topDocs().scoreDocs.length; >> + for (ScoreDoc scoreDoc : collector.topDocs().scoreDocs){ >> + System.out.println(scoreDoc.doc); >> + } >> + indexReader.close(); >> + } catch (java.lang.ArrayIndexOutOfBoundsException e){ >> + failed = true; >> + } catch (IOException e){ >> + >> + e.printStackTrace(); >> + } >> + assertEquals("Bug in boolean query composed of span queries", failed, >> false); >> + assertEquals("Bug in boolean query composed of span queries", hits, 1); >> + directory.close(); >> + } >> } >> >> Modified: >> lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java >> URL: >> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java?rev=1397282&r1=1397281&r2=1397282&view=diff >> ============================================================================== >> --- >> lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java >> (original) >> +++ >> lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java >> Thu Oct 11 20:22:14 2012 >> @@ -24,14 +24,21 @@ import java.util.concurrent.ExecutorServ >> import java.util.concurrent.Executors; >> import java.util.concurrent.TimeUnit; >> >> +import org.apache.lucene.analysis.Analyzer; >> +import org.apache.lucene.analysis.MockAnalyzer; >> import org.apache.lucene.document.Document; >> import org.apache.lucene.document.Field; >> import org.apache.lucene.document.TextField; >> +import org.apache.lucene.index.DirectoryReader; >> import org.apache.lucene.index.IndexReader; >> +import org.apache.lucene.index.IndexWriter; >> +import org.apache.lucene.index.IndexWriterConfig; >> import org.apache.lucene.index.MultiReader; >> import org.apache.lucene.index.RandomIndexWriter; >> import org.apache.lucene.index.Term; >> import org.apache.lucene.search.similarities.DefaultSimilarity; >> +import org.apache.lucene.search.spans.SpanQuery; >> +import org.apache.lucene.search.spans.SpanTermQuery; >> import org.apache.lucene.store.Directory; >> import org.apache.lucene.util.LuceneTestCase; >> import org.apache.lucene.util.NamedThreadFactory; >> @@ -283,4 +290,40 @@ public class TestBooleanQuery extends Lu >> r.close(); >> d.close(); >> } >> + >> + // LUCENE-4477 / LUCENE-4401: >> + public void testBooleanSpanQuery() throws Exception { >> + boolean failed = false; >> + int hits = 0; >> + Directory directory = newDirectory(); >> + Analyzer indexerAnalyzer = new MockAnalyzer(random()); >> + >> + IndexWriterConfig config = new IndexWriterConfig(TEST_VERSION_CURRENT, >> indexerAnalyzer); >> + IndexWriter writer = new IndexWriter(directory, config); >> + String FIELD = "content"; >> + Document d = new Document(); >> + d.add(new TextField(FIELD, "clockwork orange", Field.Store.YES)); >> + writer.addDocument(d); >> + writer.close(); >> + >> + IndexReader indexReader = DirectoryReader.open(directory); >> + IndexSearcher searcher = new IndexSearcher(indexReader); >> + >> + BooleanQuery query = new BooleanQuery(); >> + SpanQuery sq1 = new SpanTermQuery(new Term(FIELD, "clockwork")); >> + SpanQuery sq2 = new SpanTermQuery(new Term(FIELD, "clckwork")); >> + query.add(sq1, BooleanClause.Occur.SHOULD); >> + query.add(sq2, BooleanClause.Occur.SHOULD); >> + TopScoreDocCollector collector = TopScoreDocCollector.create(1000, >> true); >> + searcher.search(query, collector); >> + hits = collector.topDocs().scoreDocs.length; >> + for (ScoreDoc scoreDoc : collector.topDocs().scoreDocs){ >> + System.out.println(scoreDoc.doc); >> + } >> + indexReader.close(); >> + assertEquals("Bug in boolean query composed of span queries", failed, >> false); >> + assertEquals("Bug in boolean query composed of span queries", hits, 1); >> + directory.close(); >> + } >> + >> } >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
