-
Notifications
You must be signed in to change notification settings - Fork 15
/
BackwardsTermQueryTest.java
79 lines (65 loc) · 2.4 KB
/
BackwardsTermQueryTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.o19s;
import static org.junit.Assert.*;
import java.io.IOException;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.index.IndexOptions;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class BackwardsTermQueryTest extends LuceneTestCase {
Field newField(String name, String value, Store stored) {
FieldType tagsFieldType = new FieldType();
tagsFieldType.setStored(stored == Store.YES);
IndexOptions opts = IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS;
tagsFieldType.setIndexOptions(opts);
return new Field(name, value, tagsFieldType);
}
IndexSearcher searcherUnderTest;
RandomIndexWriter indexWriterUnderTest;
IndexReader indexReaderUnderTest;
Directory dirUnderTest;
@Before
public void setupIndex() throws IOException {
dirUnderTest = newDirectory();
indexWriterUnderTest = new RandomIndexWriter(random(), dirUnderTest);
String[] docs = new String[] { "how now brown cow", "woc",
"nworb", "won woh nworb" };
for (int i = 0; i < docs.length; i++) {
Document doc = new Document();
doc.add(newStringField("id", "" + i, Field.Store.YES));
doc.add(newField("field", docs[i], Field.Store.NO));
indexWriterUnderTest.addDocument(doc);
}
indexWriterUnderTest.commit();
indexReaderUnderTest = indexWriterUnderTest.getReader();
searcherUnderTest = newSearcher(indexReaderUnderTest);
}
@After
public void closeStuff() throws IOException {
indexReaderUnderTest.close();
indexWriterUnderTest.close();
dirUnderTest.close();
}
@Test
public void testBackwardsMatchesGetScoreOf5() throws IOException {
Query q = new BackwardsTermQuery("field", "brown");
// we should get the "brown" docs backwards first (ie the nworb)
TopDocs t = searcherUnderTest.search(q, 10);
ScoreDoc[] docs = t.scoreDocs;
assert(docs[0].score == 5.0f);
assert(docs[1].score == 5.0f);
assert(docs[2].score == 1.0f);
assert(docs.length == 3);
}
}