diff options
Diffstat (limited to 'core/src/test/java/org/elasticsearch/deps/lucene/SimpleLuceneTests.java')
-rw-r--r-- | core/src/test/java/org/elasticsearch/deps/lucene/SimpleLuceneTests.java | 116 |
1 files changed, 11 insertions, 105 deletions
diff --git a/core/src/test/java/org/elasticsearch/deps/lucene/SimpleLuceneTests.java b/core/src/test/java/org/elasticsearch/deps/lucene/SimpleLuceneTests.java index 2b08213ab4..6b117fc7e9 100644 --- a/core/src/test/java/org/elasticsearch/deps/lucene/SimpleLuceneTests.java +++ b/core/src/test/java/org/elasticsearch/deps/lucene/SimpleLuceneTests.java @@ -21,24 +21,19 @@ package org.elasticsearch.deps.lucene; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; -import org.apache.lucene.document.FieldType; -import org.apache.lucene.document.LegacyIntField; +import org.apache.lucene.document.IntPoint; import org.apache.lucene.document.SortedDocValuesField; +import org.apache.lucene.document.StoredField; import org.apache.lucene.document.TextField; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.FieldInfo; -import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.IndexableField; -import org.apache.lucene.index.LeafReader; -import org.apache.lucene.index.PostingsEnum; -import org.apache.lucene.index.SlowCompositeReaderWrapper; +import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.StoredFieldVisitor; import org.apache.lucene.index.Term; -import org.apache.lucene.index.Terms; -import org.apache.lucene.index.TermsEnum; import org.apache.lucene.search.FieldDoc; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.MatchAllDocsQuery; @@ -50,8 +45,6 @@ import org.apache.lucene.search.TopFieldDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.RAMDirectory; import org.apache.lucene.util.BytesRef; -import org.apache.lucene.util.BytesRefBuilder; -import org.apache.lucene.util.LegacyNumericUtils; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.test.ESTestCase; @@ -71,7 +64,7 @@ public class SimpleLuceneTests extends ESTestCase { document.add(new SortedDocValuesField("str", new BytesRef(text))); indexWriter.addDocument(document); } - IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(indexWriter)); + IndexReader reader = DirectoryReader.open(indexWriter); IndexSearcher searcher = new IndexSearcher(reader); TopFieldDocs docs = searcher.search(new MatchAllDocsQuery(), 10, new Sort(new SortField("str", SortField.Type.STRING))); for (int i = 0; i < 10; i++) { @@ -86,7 +79,8 @@ public class SimpleLuceneTests extends ESTestCase { Document document = new Document(); document.add(new TextField("_id", "1", Field.Store.YES)); - document.add(new LegacyIntField("test", 2, LegacyIntField.TYPE_STORED)); + document.add(new IntPoint("test", 2)); + document.add(new StoredField("test", 2)); indexWriter.addDocument(document); IndexReader reader = DirectoryReader.open(indexWriter); @@ -94,11 +88,9 @@ public class SimpleLuceneTests extends ESTestCase { TopDocs topDocs = searcher.search(new TermQuery(new Term("_id", "1")), 1); Document doc = searcher.doc(topDocs.scoreDocs[0].doc); IndexableField f = doc.getField("test"); - assertThat(f.stringValue(), equalTo("2")); + assertThat(f.numericValue(), equalTo(2)); - BytesRefBuilder bytes = new BytesRefBuilder(); - LegacyNumericUtils.intToPrefixCoded(2, 0, bytes); - topDocs = searcher.search(new TermQuery(new Term("test", bytes.get())), 1); + topDocs = searcher.search(IntPoint.newExactQuery("test", 2), 1); doc = searcher.doc(topDocs.scoreDocs[0].doc); f = doc.getField("test"); assertThat(f.stringValue(), equalTo("2")); @@ -139,40 +131,6 @@ public class SimpleLuceneTests extends ESTestCase { indexWriter.close(); } - public void testBoost() throws Exception { - Directory dir = new RAMDirectory(); - IndexWriter indexWriter = new IndexWriter(dir, new IndexWriterConfig(Lucene.STANDARD_ANALYZER)); - - for (int i = 0; i < 100; i++) { - // TODO (just setting the boost value does not seem to work...) - StringBuilder value = new StringBuilder().append("value"); - for (int j = 0; j < i; j++) { - value.append(" ").append("value"); - } - Document document = new Document(); - TextField textField = new TextField("_id", Integer.toString(i), Field.Store.YES); - textField.setBoost(i); - document.add(textField); - textField = new TextField("value", value.toString(), Field.Store.YES); - textField.setBoost(i); - document.add(textField); - indexWriter.addDocument(document); - } - - IndexReader reader = DirectoryReader.open(indexWriter); - IndexSearcher searcher = new IndexSearcher(reader); - TermQuery query = new TermQuery(new Term("value", "value")); - TopDocs topDocs = searcher.search(query, 100); - assertThat(100, equalTo(topDocs.totalHits)); - for (int i = 0; i < topDocs.scoreDocs.length; i++) { - Document doc = searcher.doc(topDocs.scoreDocs[i].doc); -// System.out.println(doc.get("id") + ": " + searcher.explain(query, topDocs.scoreDocs[i].doc)); - assertThat(doc.get("_id"), equalTo(Integer.toString(100 - i - 1))); - } - - indexWriter.close(); - } - public void testNRTSearchOnClosedWriter() throws Exception { Directory dir = new RAMDirectory(); IndexWriter indexWriter = new IndexWriter(dir, new IndexWriterConfig(Lucene.STANDARD_ANALYZER)); @@ -181,7 +139,6 @@ public class SimpleLuceneTests extends ESTestCase { for (int i = 0; i < 100; i++) { Document document = new Document(); TextField field = new TextField("_id", Integer.toString(i), Field.Store.YES); - field.setBoost(i); document.add(field); indexWriter.addDocument(document); } @@ -189,60 +146,9 @@ public class SimpleLuceneTests extends ESTestCase { indexWriter.close(); - TermsEnum termDocs = SlowCompositeReaderWrapper.wrap(reader).terms("_id").iterator(); - termDocs.next(); - } - - /** - * A test just to verify that term freqs are not stored for numeric fields. <tt>int1</tt> is not storing termFreq - * and <tt>int2</tt> does. - */ - public void testNumericTermDocsFreqs() throws Exception { - Directory dir = new RAMDirectory(); - IndexWriter indexWriter = new IndexWriter(dir, new IndexWriterConfig(Lucene.STANDARD_ANALYZER)); - - Document doc = new Document(); - FieldType type = LegacyIntField.TYPE_NOT_STORED; - LegacyIntField field = new LegacyIntField("int1", 1, type); - doc.add(field); - - type = new FieldType(LegacyIntField.TYPE_NOT_STORED); - type.setIndexOptions(IndexOptions.DOCS_AND_FREQS); - type.freeze(); - - field = new LegacyIntField("int1", 1, type); - doc.add(field); - - field = new LegacyIntField("int2", 1, type); - doc.add(field); - - field = new LegacyIntField("int2", 1, type); - doc.add(field); - - indexWriter.addDocument(doc); - - IndexReader reader = DirectoryReader.open(indexWriter); - LeafReader atomicReader = SlowCompositeReaderWrapper.wrap(reader); - - Terms terms = atomicReader.terms("int1"); - TermsEnum termsEnum = terms.iterator(); - termsEnum.next(); - - PostingsEnum termDocs = termsEnum.postings(null); - assertThat(termDocs.nextDoc(), equalTo(0)); - assertThat(termDocs.docID(), equalTo(0)); - assertThat(termDocs.freq(), equalTo(1)); - - terms = atomicReader.terms("int2"); - termsEnum = terms.iterator(); - termsEnum.next(); - termDocs = termsEnum.postings(termDocs); - assertThat(termDocs.nextDoc(), equalTo(0)); - assertThat(termDocs.docID(), equalTo(0)); - assertThat(termDocs.freq(), equalTo(2)); - - reader.close(); - indexWriter.close(); + for (LeafReaderContext leaf : reader.leaves()) { + leaf.reader().terms("_id").iterator().next(); + } } private DirectoryReader refreshReader(DirectoryReader reader) throws IOException { |