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 2012/10/11 22:22:15 UTC
svn commit: r1397282 - in /lucene/dev/trunk/lucene:
analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java
core/src/test/org/apache/lucene/search/TestBooleanQuery.java
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();
+ }
+
}
Re: svn commit: r1397282 - in /lucene/dev/trunk/lucene:
analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java
core/src/test/org/apache/lucene/search/TestBooleanQuery.java
Posted by Michael McCandless <lu...@mikemccandless.com>.
Woops, no! I'll fix ...
Mike McCandless
http://blog.mikemccandless.com
On Thu, Oct 11, 2012 at 5:06 PM, Robert Muir <rc...@gmail.com> wrote:
> Did you intend to also commit the original test to TestStandardFactories?
>
> On Thu, Oct 11, 2012 at 4:22 PM, <mi...@apache.org> 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: dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: dev-help@lucene.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org
Re: svn commit: r1397282 - in /lucene/dev/trunk/lucene:
analysis/common/src/test/org/apache/lucene/analysis/standard/TestStandardFactories.java
core/src/test/org/apache/lucene/search/TestBooleanQuery.java
Posted by Robert Muir <rc...@gmail.com>.
Did you intend to also commit the original test to TestStandardFactories?
On Thu, Oct 11, 2012 at 4:22 PM, <mi...@apache.org> 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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org