1 package org.apache.lucene.index;
4 * Licensed to the Apache Software Foundation (ASF) under one or more
5 * contributor license agreements. See the NOTICE file distributed with
6 * this work for additional information regarding copyright ownership.
7 * The ASF licenses this file to You under the Apache License, Version 2.0
8 * (the "License"); you may not use this file except in compliance with
9 * the License. You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
20 import java.io.IOException;
22 import org.apache.lucene.util.LuceneTestCase;
23 import org.apache.lucene.analysis.MockAnalyzer;
24 import org.apache.lucene.document.Document;
25 import org.apache.lucene.document.Field.Index;
26 import org.apache.lucene.document.Field.Store;
27 import org.apache.lucene.store.Directory;
29 public class TestParallelTermEnum extends LuceneTestCase {
30 private IndexReader ir1;
31 private IndexReader ir2;
32 private Directory rd1;
33 private Directory rd2;
36 public void setUp() throws Exception {
40 IndexWriter iw1 = new IndexWriter(rd1, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
43 doc.add(newField("field1", "the quick brown fox jumps", Store.YES,
45 doc.add(newField("field2", "the quick brown fox jumps", Store.YES,
47 doc.add(newField("field4", "", Store.NO, Index.ANALYZED));
53 IndexWriter iw2 = new IndexWriter(rd2, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
56 doc.add(newField("field0", "", Store.NO, Index.ANALYZED));
57 doc.add(newField("field1", "the fox jumps over the lazy dog",
58 Store.YES, Index.ANALYZED));
59 doc.add(newField("field3", "the fox jumps over the lazy dog",
60 Store.YES, Index.ANALYZED));
65 this.ir1 = IndexReader.open(rd1, true);
66 this.ir2 = IndexReader.open(rd2, true);
70 public void tearDown() throws Exception {
78 public void test1() throws IOException {
79 ParallelReader pr = new ParallelReader();
83 TermDocs td = pr.termDocs();
85 TermEnum te = pr.terms();
86 assertTrue(te.next());
87 assertEquals("field1:brown", te.term().toString());
89 assertTrue(td.next());
90 assertEquals(0, td.doc());
91 assertFalse(td.next());
92 assertTrue(te.next());
93 assertEquals("field1:fox", te.term().toString());
95 assertTrue(td.next());
96 assertEquals(0, td.doc());
97 assertFalse(td.next());
98 assertTrue(te.next());
99 assertEquals("field1:jumps", te.term().toString());
101 assertTrue(td.next());
102 assertEquals(0, td.doc());
103 assertFalse(td.next());
104 assertTrue(te.next());
105 assertEquals("field1:quick", te.term().toString());
107 assertTrue(td.next());
108 assertEquals(0, td.doc());
109 assertFalse(td.next());
110 assertTrue(te.next());
111 assertEquals("field1:the", te.term().toString());
113 assertTrue(td.next());
114 assertEquals(0, td.doc());
115 assertFalse(td.next());
116 assertTrue(te.next());
117 assertEquals("field2:brown", te.term().toString());
119 assertTrue(td.next());
120 assertEquals(0, td.doc());
121 assertFalse(td.next());
122 assertTrue(te.next());
123 assertEquals("field2:fox", te.term().toString());
125 assertTrue(td.next());
126 assertEquals(0, td.doc());
127 assertFalse(td.next());
128 assertTrue(te.next());
129 assertEquals("field2:jumps", te.term().toString());
131 assertTrue(td.next());
132 assertEquals(0, td.doc());
133 assertFalse(td.next());
134 assertTrue(te.next());
135 assertEquals("field2:quick", te.term().toString());
137 assertTrue(td.next());
138 assertEquals(0, td.doc());
139 assertFalse(td.next());
140 assertTrue(te.next());
141 assertEquals("field2:the", te.term().toString());
143 assertTrue(td.next());
144 assertEquals(0, td.doc());
145 assertFalse(td.next());
146 assertTrue(te.next());
147 assertEquals("field3:dog", te.term().toString());
149 assertTrue(td.next());
150 assertEquals(0, td.doc());
151 assertFalse(td.next());
152 assertTrue(te.next());
153 assertEquals("field3:fox", te.term().toString());
155 assertTrue(td.next());
156 assertEquals(0, td.doc());
157 assertFalse(td.next());
158 assertTrue(te.next());
159 assertEquals("field3:jumps", te.term().toString());
161 assertTrue(td.next());
162 assertEquals(0, td.doc());
163 assertFalse(td.next());
164 assertTrue(te.next());
165 assertEquals("field3:lazy", te.term().toString());
167 assertTrue(td.next());
168 assertEquals(0, td.doc());
169 assertFalse(td.next());
170 assertTrue(te.next());
171 assertEquals("field3:over", te.term().toString());
173 assertTrue(td.next());
174 assertEquals(0, td.doc());
175 assertFalse(td.next());
176 assertTrue(te.next());
177 assertEquals("field3:the", te.term().toString());
179 assertTrue(td.next());
180 assertEquals(0, td.doc());
181 assertFalse(td.next());
182 assertFalse(te.next());