You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/12/01 18:02:51 UTC
svn commit: r1642713 [2/3] - in /lucene/dev/branches/lucene2878/lucene: ./
analysis/ analysis/common/
analysis/common/src/test/org/apache/lucene/analysis/core/
analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/
analysis/common/src/test/...
Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java Mon Dec 1 17:02:49 2014
@@ -23,18 +23,18 @@ import org.apache.lucene.facet.FacetsCon
import org.apache.lucene.facet.taxonomy.FacetLabel;
import org.apache.lucene.facet.taxonomy.TaxonomyReader;
import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
-import org.apache.lucene.facet.taxonomy.writercache.TaxonomyWriterCache;
import org.apache.lucene.facet.taxonomy.writercache.Cl2oTaxonomyWriterCache;
import org.apache.lucene.facet.taxonomy.writercache.LruTaxonomyWriterCache;
-import org.apache.lucene.index.LeafReader;
-import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.facet.taxonomy.writercache.TaxonomyWriterCache;
import org.apache.lucene.index.CorruptIndexException; // javadocs
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.IndexWriterConfig.OpenMode;
+import org.apache.lucene.index.LeafReader;
+import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.LogByteSizeMergePolicy;
import org.apache.lucene.index.ReaderManager;
import org.apache.lucene.index.SegmentInfos;
@@ -44,8 +44,6 @@ import org.apache.lucene.index.TieredMer
import org.apache.lucene.store.AlreadyClosedException;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.LockObtainFailedException; // javadocs
-import org.apache.lucene.store.NativeFSLockFactory;
-import org.apache.lucene.store.SimpleFSLockFactory;
import org.apache.lucene.util.BytesRef;
/*
@@ -136,22 +134,6 @@ public class DirectoryTaxonomyWriter imp
}
/**
- * Forcibly unlocks the taxonomy in the named directory.
- * <P>
- * Caution: this should only be used by failure recovery code, when it is
- * known that no other process nor thread is in fact currently accessing
- * this taxonomy.
- * <P>
- * This method is unnecessary if your {@link Directory} uses a
- * {@link NativeFSLockFactory} instead of the default
- * {@link SimpleFSLockFactory}. When the "native" lock is used, a lock
- * does not stay behind forever when the process using it dies.
- */
- public static void unlock(Directory directory) throws IOException {
- IndexWriter.unlock(directory);
- }
-
- /**
* Construct a Taxonomy writer.
*
* @param directory
@@ -173,10 +155,7 @@ public class DirectoryTaxonomyWriter imp
* @throws CorruptIndexException
* if the taxonomy is corrupted.
* @throws LockObtainFailedException
- * if the taxonomy is locked by another writer. If it is known
- * that no other concurrent writer is active, the lock might
- * have been left around by an old dead process, and should be
- * removed using {@link #unlock(Directory)}.
+ * if the taxonomy is locked by another writer.
* @throws IOException
* if another error occurred.
*/
Modified: lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java Mon Dec 1 17:02:49 2014
@@ -12,8 +12,6 @@ import org.apache.lucene.facet.SlowRAMDi
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.LockObtainFailedException;
-import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.junit.Test;
@@ -916,47 +914,6 @@ public class TestTaxonomyCombined extend
}
/**
- * Test what happens if we try to write to a locked taxonomy writer,
- * and see that we can unlock it and continue.
- */
- @Test
- public void testWriterLock() throws Exception {
- // native fslock impl gets angry if we use it, so use RAMDirectory explicitly.
- Directory indexDir = new RAMDirectory();
- TaxonomyWriter tw = new DirectoryTaxonomyWriter(indexDir);
- tw.addCategory(new FacetLabel("hi", "there"));
- tw.commit();
- // we deliberately not close the write now, and keep it open and
- // locked.
- // Verify that the writer worked:
- TaxonomyReader tr = new DirectoryTaxonomyReader(indexDir);
- assertEquals(2, tr.getOrdinal(new FacetLabel("hi", "there")));
- // Try to open a second writer, with the first one locking the directory.
- // We expect to get a LockObtainFailedException.
- try {
- assertNull(new DirectoryTaxonomyWriter(indexDir));
- fail("should have failed to write in locked directory");
- } catch (LockObtainFailedException e) {
- // this is what we expect to happen.
- }
- // Remove the lock, and now the open should succeed, and we can
- // write to the new writer.
- DirectoryTaxonomyWriter.unlock(indexDir);
- TaxonomyWriter tw2 = new DirectoryTaxonomyWriter(indexDir);
- tw2.addCategory(new FacetLabel("hey"));
- tw2.close();
- // See that the writer indeed wrote:
- TaxonomyReader newtr = TaxonomyReader.openIfChanged(tr);
- assertNotNull(newtr);
- tr.close();
- tr = newtr;
- assertEquals(3, tr.getOrdinal(new FacetLabel("hey")));
- tr.close();
- tw.close();
- indexDir.close();
- }
-
- /**
* fillTaxonomyCheckPaths adds the categories in the categories[] array,
* and asserts that the additions return exactly paths specified in
* expectedPaths[]. This is the same add fillTaxonomy() but also checks
Modified: lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyFacetSumValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyFacetSumValueSource.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyFacetSumValueSource.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyFacetSumValueSource.java Mon Dec 1 17:02:49 2014
@@ -27,7 +27,6 @@ import org.apache.lucene.analysis.MockAn
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FloatDocValuesField;
-import org.apache.lucene.document.IntField;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.facet.FacetField;
@@ -209,7 +208,7 @@ public class TestTaxonomyFacetSumValueSo
RandomIndexWriter writer = new RandomIndexWriter(random(), dir);
Document doc = new Document();
- doc.add(new IntField("num", 10, Field.Store.NO));
+ doc.add(new NumericDocValuesField("num", 10));
doc.add(new FacetField("a", "foo1"));
writer.addDocument(config.build(taxoWriter, doc));
Modified: lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java (original)
+++ lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java Mon Dec 1 17:02:49 2014
@@ -440,6 +440,7 @@ public class DistinctValuesCollectorTest
Document doc = new Document();
doc.add(new StringField("id", String.format(Locale.ROOT, "%09d", i), Field.Store.YES));
+ doc.add(new SortedDocValuesField("id", new BytesRef(String.format(Locale.ROOT, "%09d", i))));
if (groupValue != null) {
addField(doc, groupField, groupValue);
}
Modified: lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java (original)
+++ lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java Mon Dec 1 17:02:49 2014
@@ -229,6 +229,7 @@ public class GroupingSearchTest extends
newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
Document doc = new Document();
doc.add(newField("group", "foo", StringField.TYPE_NOT_STORED));
+ doc.add(new SortedDocValuesField("group", new BytesRef("foo")));
w.addDocument(doc);
IndexSearcher indexSearcher = newSearcher(w.getReader());
Modified: lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java (original)
+++ lucene/dev/branches/lucene2878/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java Mon Dec 1 17:02:49 2014
@@ -315,7 +315,9 @@ public class TestGrouping extends Lucene
BytesRef groupValue = mvalGd.groupValue.exists() ? ((MutableValueStr) mvalGd.groupValue).value.get() : null;
groups.add(new GroupDocs<>(Float.NaN, mvalGd.maxScore, mvalGd.totalHits, mvalGd.scoreDocs, groupValue, mvalGd.groupSortValues));
}
- return new TopGroups<>(mvalTopGroups.groupSort, mvalTopGroups.withinGroupSort, mvalTopGroups.totalHitCount, mvalTopGroups.totalGroupedHitCount, groups.toArray(new GroupDocs[groups.size()]), Float.NaN);
+ // NOTE: currenlty using diamond operator on MergedIterator (without explicit Term class) causes
+ // errors on Eclipse Compiler (ecj) used for javadoc lint
+ return new TopGroups<BytesRef>(mvalTopGroups.groupSort, mvalTopGroups.withinGroupSort, mvalTopGroups.totalHitCount, mvalTopGroups.totalGroupedHitCount, groups.toArray(new GroupDocs[groups.size()]), Float.NaN);
}
fail();
return null;
Modified: lucene/dev/branches/lucene2878/lucene/highlighter/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/highlighter/build.xml?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/highlighter/build.xml (original)
+++ lucene/dev/branches/lucene2878/lucene/highlighter/build.xml Mon Dec 1 17:02:49 2014
@@ -31,10 +31,13 @@
<path id="classpath">
<pathelement path="${memory.jar}"/>
<pathelement path="${queries.jar}"/>
+ <pathelement path="${join.jar}"/>
<path refid="base.classpath"/>
</path>
- <target name="compile-core" depends="jar-memory, common.compile-core" />
+ <target name="init" depends="module-build.init,jar-memory,jar-queries,jar-join"/>
+
+ <target name="compile-core" depends="jar-memory, common.compile-core, jar-join" />
<target name="javadocs" depends="javadocs-memory,compile-core,check-javadocs-uptodate"
unless="javadocs-uptodate-${name}">
<invoke-module-javadoc>
Modified: lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java (original)
+++ lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java Mon Dec 1 17:02:49 2014
@@ -44,6 +44,8 @@ import org.apache.lucene.index.Terms;
import org.apache.lucene.index.memory.MemoryIndex;
import org.apache.lucene.queries.CommonTermsQuery;
import org.apache.lucene.search.*;
+import org.apache.lucene.search.join.ToChildBlockJoinQuery;
+import org.apache.lucene.search.join.ToParentBlockJoinQuery;
import org.apache.lucene.search.spans.FieldMaskingSpanQuery;
import org.apache.lucene.search.spans.SpanFirstQuery;
import org.apache.lucene.search.spans.SpanNearQuery;
@@ -154,6 +156,10 @@ public class WeightedSpanTermExtractor {
for (Iterator<Query> iterator = ((DisjunctionMaxQuery) query).iterator(); iterator.hasNext();) {
extract(iterator.next(), terms);
}
+ } else if (query instanceof ToParentBlockJoinQuery) {
+ extract(((ToParentBlockJoinQuery) query).getChildQuery(), terms);
+ } else if (query instanceof ToChildBlockJoinQuery) {
+ extract(((ToChildBlockJoinQuery) query).getParentQuery(), terms);
} else if (query instanceof MultiPhraseQuery) {
final MultiPhraseQuery mpq = (MultiPhraseQuery) query;
final List<Term[]> termArrays = mpq.getTermArrays();
Modified: lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java Mon Dec 1 17:02:49 2014
@@ -21,12 +21,12 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
-
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -42,14 +42,19 @@ import org.apache.lucene.document.TextFi
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.StoredDocument;
import org.apache.lucene.index.Term;
import org.apache.lucene.queries.CommonTermsQuery;
import org.apache.lucene.search.*;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.highlight.SynonymTokenizer.TestHighlightRunner;
+import org.apache.lucene.search.join.BitDocIdSetCachingWrapperFilter;
+import org.apache.lucene.search.join.BitDocIdSetFilter;
+import org.apache.lucene.search.join.ScoreMode;
+import org.apache.lucene.search.join.ToChildBlockJoinQuery;
+import org.apache.lucene.search.join.ToParentBlockJoinQuery;
import org.apache.lucene.search.spans.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
@@ -515,6 +520,62 @@ public class HighlighterTest extends Bas
}
+
+ public void testToParentBlockJoinQuery() throws Exception {
+ BitDocIdSetFilter parentFilter = new BitDocIdSetCachingWrapperFilter(
+ new QueryWrapperFilter(
+ new TermQuery(new Term(FIELD_NAME, "parent"))));
+
+ query = new ToParentBlockJoinQuery(new TermQuery(new Term(FIELD_NAME, "child")),
+ parentFilter, ScoreMode.None);
+ searcher = newSearcher(reader);
+ hits = searcher.search(query, 100);
+ int maxNumFragmentsRequired = 2;
+
+ QueryScorer scorer = new QueryScorer(query, FIELD_NAME);
+ Highlighter highlighter = new Highlighter(this, scorer);
+
+ for (int i = 0; i < hits.totalHits; i++) {
+ String text = "child document";
+ TokenStream tokenStream = analyzer.tokenStream(FIELD_NAME, text);
+
+ highlighter.setTextFragmenter(new SimpleFragmenter(40));
+ highlighter.getBestFragments(tokenStream, text, maxNumFragmentsRequired, "...");
+ }
+
+ assertTrue("Failed to find correct number of highlights " + numHighlights + " found",
+ numHighlights == 1);
+ }
+
+ public void testToChildBlockJoinQuery() throws Exception {
+ BitDocIdSetFilter parentFilter = new BitDocIdSetCachingWrapperFilter(
+ new QueryWrapperFilter(
+ new TermQuery(new Term(FIELD_NAME, "parent"))));
+
+ BooleanQuery booleanQuery = new BooleanQuery();
+ booleanQuery.add(new ToChildBlockJoinQuery(new TermQuery(
+ new Term(FIELD_NAME, "parent")), parentFilter, false), Occur.MUST);
+ booleanQuery.add(new TermQuery(new Term(FIELD_NAME, "child")), Occur.MUST);
+ query = booleanQuery;
+
+ searcher = newSearcher(reader);
+ hits = searcher.search(query, 100);
+ int maxNumFragmentsRequired = 2;
+
+ QueryScorer scorer = new QueryScorer(query, FIELD_NAME);
+ Highlighter highlighter = new Highlighter(this, scorer);
+
+ for (int i = 0; i < hits.totalHits; i++) {
+ String text = "parent document";
+ TokenStream tokenStream = analyzer.tokenStream(FIELD_NAME, text);
+
+ highlighter.setTextFragmenter(new SimpleFragmenter(40));
+ highlighter.getBestFragments(tokenStream, text, maxNumFragmentsRequired, "...");
+ }
+
+ assertTrue("Failed to find correct number of highlights " + numHighlights + " found",
+ numHighlights == 1);
+ }
public void testSimpleQueryScorerPhraseHighlighting2() throws Exception {
PhraseQuery phraseQuery = new PhraseQuery();
@@ -1901,6 +1962,10 @@ public class HighlighterTest extends Bas
doc.add(new StoredField(NUMERIC_FIELD_NAME, 7));
writer.addDocument(doc, analyzer);
+ Document childDoc = doc(FIELD_NAME, "child document");
+ Document parentDoc = doc(FIELD_NAME, "parent document");
+ writer.addDocuments(Arrays.asList(childDoc, parentDoc));
+
writer.forceMerge(1);
writer.close();
reader = DirectoryReader.open(ramDir);
Modified: lucene/dev/branches/lucene2878/lucene/ivy-versions.properties
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/ivy-versions.properties?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/ivy-versions.properties (original)
+++ lucene/dev/branches/lucene2878/lucene/ivy-versions.properties Mon Dec 1 17:02:49 2014
@@ -79,7 +79,7 @@ com.sun.jersey.version = 1.9
/mecab/mecab-ipadic = 2.7.0-20070801
/mecab/mecab-naist-jdic = 0.6.3b-20111013
/net.arnx/jsonic = 1.2.7
-/net.sf.saxon/Saxon-HE = 9.5.1-4
+/net.sf.saxon/Saxon-HE = 9.6.0-2
/net.sourceforge.argparse4j/argparse4j = 0.4.3
/net.sourceforge.jmatio/jmatio = 1.0
/net.sourceforge.nekohtml/nekohtml = 1.9.17
Modified: lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToChildBlockJoinQuery.java Mon Dec 1 17:02:49 2014
@@ -95,6 +95,11 @@ public class ToChildBlockJoinQuery exten
return new ToChildBlockJoinWeight(this, parentQuery.createWeight(searcher), parentsFilter, doScores);
}
+ /** Return our parent query. */
+ public Query getParentQuery() {
+ return parentQuery;
+ }
+
private static class ToChildBlockJoinWeight extends Weight {
private final Query joinQuery;
private final Weight parentWeight;
Modified: lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java Mon Dec 1 17:02:49 2014
@@ -123,6 +123,11 @@ public class ToParentBlockJoinQuery exte
public Weight createWeight(IndexSearcher searcher) throws IOException {
return new BlockJoinWeight(this, childQuery.createWeight(searcher), parentsFilter, scoreMode);
}
+
+ /** Return our child query. */
+ public Query getChildQuery() {
+ return childQuery;
+ }
private static class BlockJoinWeight extends Weight {
private final Query joinQuery;
Modified: lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java (original)
+++ lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java Mon Dec 1 17:02:49 2014
@@ -1325,6 +1325,7 @@ public class TestBlockJoin extends Lucen
RandomIndexWriter w = new RandomIndexWriter(random(), d);
Document parent = new Document();
parent.add(new StoredField("parentID", "0"));
+ parent.add(new SortedDocValuesField("parentID", new BytesRef("0")));
parent.add(newTextField("parentText", "text", Field.Store.NO));
parent.add(newStringField("isParent", "yes", Field.Store.NO));
@@ -1345,6 +1346,7 @@ public class TestBlockJoin extends Lucen
parent.add(newTextField("parentText", "text", Field.Store.NO));
parent.add(newStringField("isParent", "yes", Field.Store.NO));
parent.add(new StoredField("parentID", "1"));
+ parent.add(new SortedDocValuesField("parentID", new BytesRef("1")));
// parent last:
docs.add(parent);
@@ -1389,6 +1391,7 @@ public class TestBlockJoin extends Lucen
RandomIndexWriter w = new RandomIndexWriter(random(), d);
Document parent = new Document();
parent.add(new StoredField("parentID", "0"));
+ parent.add(new SortedDocValuesField("parentID", new BytesRef("0")));
parent.add(newTextField("parentText", "text", Field.Store.NO));
parent.add(newStringField("isParent", "yes", Field.Store.NO));
@@ -1409,6 +1412,8 @@ public class TestBlockJoin extends Lucen
parent.add(newTextField("parentText", "text", Field.Store.NO));
parent.add(newStringField("isParent", "yes", Field.Store.NO));
parent.add(new StoredField("parentID", "1"));
+ parent.add(new SortedDocValuesField("parentID", new BytesRef("1")));
+
// parent last:
docs.add(parent);
Modified: lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java (original)
+++ lucene/dev/branches/lucene2878/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java Mon Dec 1 17:02:49 2014
@@ -238,12 +238,14 @@ public class TestJoinUtil extends Lucene
doc.add(new TextField("description", "random text", Field.Store.NO));
doc.add(new TextField("name", "name1", Field.Store.NO));
doc.add(new TextField(idField, "7", Field.Store.NO));
+ doc.add(new SortedDocValuesField(idField, new BytesRef("7")));
w.addDocument(doc);
// 1
doc = new Document();
doc.add(new TextField("price", "10.0", Field.Store.NO));
doc.add(new TextField(idField, "2", Field.Store.NO));
+ doc.add(new SortedDocValuesField(idField, new BytesRef("2")));
doc.add(new TextField(toField, "7", Field.Store.NO));
w.addDocument(doc);
@@ -251,6 +253,7 @@ public class TestJoinUtil extends Lucene
doc = new Document();
doc.add(new TextField("price", "20.0", Field.Store.NO));
doc.add(new TextField(idField, "3", Field.Store.NO));
+ doc.add(new SortedDocValuesField(idField, new BytesRef("3")));
doc.add(new TextField(toField, "7", Field.Store.NO));
w.addDocument(doc);
@@ -266,6 +269,7 @@ public class TestJoinUtil extends Lucene
doc = new Document();
doc.add(new TextField("price", "10.0", Field.Store.NO));
doc.add(new TextField(idField, "5", Field.Store.NO));
+ doc.add(new SortedDocValuesField(idField, new BytesRef("5")));
doc.add(new TextField(toField, "0", Field.Store.NO));
w.addDocument(doc);
@@ -273,6 +277,7 @@ public class TestJoinUtil extends Lucene
doc = new Document();
doc.add(new TextField("price", "20.0", Field.Store.NO));
doc.add(new TextField(idField, "6", Field.Store.NO));
+ doc.add(new SortedDocValuesField(idField, new BytesRef("6")));
doc.add(new TextField(toField, "0", Field.Store.NO));
w.addDocument(doc);
Modified: lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingLeafReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingLeafReader.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingLeafReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingLeafReader.java Mon Dec 1 17:02:49 2014
@@ -751,12 +751,7 @@ public class SortingLeafReader extends F
@Override
public Fields fields() throws IOException {
- Fields fields = in.fields();
- if (fields == null) {
- return null;
- } else {
- return new SortingFields(fields, in.getFieldInfos(), docMap);
- }
+ return new SortingFields(in.fields(), in.getFieldInfos(), docMap);
}
@Override
Modified: lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java (original)
+++ lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java Mon Dec 1 17:02:49 2014
@@ -96,19 +96,17 @@ public class HighFreqTerms {
TermStatsQueue tiq = null;
if (field != null) {
- Fields fields = MultiFields.getFields(reader);
- if (fields == null) {
+ Terms terms = MultiFields.getTerms(reader, field);
+ if (terms == null) {
throw new RuntimeException("field " + field + " not found");
}
- Terms terms = fields.terms(field);
- if (terms != null) {
- TermsEnum termsEnum = terms.iterator(null);
- tiq = new TermStatsQueue(numTerms, comparator);
- tiq.fill(field, termsEnum);
- }
+
+ TermsEnum termsEnum = terms.iterator(null);
+ tiq = new TermStatsQueue(numTerms, comparator);
+ tiq.fill(field, termsEnum);
} else {
Fields fields = MultiFields.getFields(reader);
- if (fields == null) {
+ if (fields.size() == 0) {
throw new RuntimeException("no fields found for this index");
}
tiq = new TermStatsQueue(numTerms, comparator);
Modified: lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java (original)
+++ lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java Mon Dec 1 17:02:49 2014
@@ -17,12 +17,16 @@
package org.apache.lucene.uninverting;
-import org.apache.lucene.codecs.PostingsFormat;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.lucene.codecs.PostingsFormat; // javadocs
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.DocValuesType;
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.Fields;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.index.Terms;
@@ -34,12 +38,6 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.PagedBytes;
import org.apache.lucene.util.StringHelper;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
/**
* This class enables fast access to multiple term ords for
* a specified field across all docIDs.
@@ -182,11 +180,6 @@ public class DocTermOrds implements Acco
return sz;
}
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
-
/** Inverts all terms */
public DocTermOrds(LeafReader reader, Bits liveDocs, String field) throws IOException {
this(reader, liveDocs, field, null, Integer.MAX_VALUE);
@@ -239,11 +232,7 @@ public class DocTermOrds implements Acco
public TermsEnum getOrdTermsEnum(LeafReader reader) throws IOException {
if (indexedTermsArray == null) {
//System.out.println("GET normal enum");
- final Fields fields = reader.fields();
- if (fields == null) {
- return null;
- }
- final Terms terms = fields.terms(field);
+ final Terms terms = reader.terms(field);
if (terms == null) {
return null;
} else {
@@ -294,12 +283,7 @@ public class DocTermOrds implements Acco
final int[] lastTerm = new int[maxDoc]; // last term we saw for this document
final byte[][] bytes = new byte[maxDoc][]; // list of term numbers for the doc (delta encoded vInts)
- final Fields fields = reader.fields();
- if (fields == null) {
- // No terms
- return;
- }
- final Terms terms = fields.terms(field);
+ final Terms terms = reader.terms(field);
if (terms == null) {
// No terms
return;
Modified: lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCache.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCache.java (original)
+++ lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCache.java Mon Dec 1 17:02:49 2014
@@ -19,7 +19,6 @@ package org.apache.lucene.uninverting;
import java.io.IOException;
import java.io.PrintStream;
-import java.util.Collections;
import org.apache.lucene.analysis.NumericTokenStream;
import org.apache.lucene.document.DoubleField;
@@ -64,11 +63,6 @@ interface FieldCache {
// don't call on the in-progress value, might make things angry.
return RamUsageEstimator.NUM_BYTES_OBJECT_REF;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
/**
Modified: lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java (original)
+++ lucene/dev/branches/lucene2878/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java Mon Dec 1 17:02:49 2014
@@ -383,11 +383,6 @@ class FieldCacheImpl implements FieldCac
return base + (bits.length() >>> 3);
}
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
static final class DocsWithFieldCache extends Cache {
@@ -488,11 +483,6 @@ class FieldCacheImpl implements FieldCac
public long ramBytesUsed() {
return values.ramBytesUsed() + RamUsageEstimator.NUM_BYTES_OBJECT_REF + RamUsageEstimator.NUM_BYTES_LONG;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
static final class LongCache extends Cache {
Modified: lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/CommonTermsQuery.java Mon Dec 1 17:02:49 2014
@@ -239,10 +239,6 @@ public class CommonTermsQuery extends Qu
TermsEnum termsEnum = null;
for (LeafReaderContext context : leaves) {
final Fields fields = context.reader().fields();
- if (fields == null) {
- // reader has no fields
- continue;
- }
for (int i = 0; i < queryTerms.length; i++) {
Term term = queryTerms[i];
TermContext termContext = contextArray[i];
Modified: lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/TermsFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/TermsFilter.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/TermsFilter.java (original)
+++ lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/TermsFilter.java Mon Dec 1 17:02:49 2014
@@ -186,9 +186,6 @@ public final class TermsFilter extends F
BitDocIdSet.Builder builder = new BitDocIdSet.Builder(reader.maxDoc());
final Fields fields = reader.fields();
final BytesRef spare = new BytesRef(this.termsBytes);
- if (fields == null) {
- return builder.build();
- }
Terms terms = null;
TermsEnum termsEnum = null;
DocsEnum docs = null;
Modified: lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java (original)
+++ lucene/dev/branches/lucene2878/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java Mon Dec 1 17:02:49 2014
@@ -60,9 +60,7 @@ public class SumTotalTermFreqValueSource
public void createWeight(Map context, IndexSearcher searcher) throws IOException {
long sumTotalTermFreq = 0;
for (LeafReaderContext readerContext : searcher.getTopReaderContext().leaves()) {
- Fields fields = readerContext.reader().fields();
- if (fields == null) continue;
- Terms terms = fields.terms(indexedField);
+ Terms terms = readerContext.reader().terms(indexedField);
if (terms == null) continue;
long v = terms.getSumTotalTermFreq();
if (v == -1) {
Modified: lucene/dev/branches/lucene2878/lucene/queries/src/test/org/apache/lucene/queries/function/TestBoostedQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/queries/src/test/org/apache/lucene/queries/function/TestBoostedQuery.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/queries/src/test/org/apache/lucene/queries/function/TestBoostedQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/queries/src/test/org/apache/lucene/queries/function/TestBoostedQuery.java Mon Dec 1 17:02:49 2014
@@ -4,7 +4,7 @@ package org.apache.lucene.queries.functi
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.RandomIndexWriter;
@@ -18,6 +18,7 @@ import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -55,7 +56,7 @@ public class TestBoostedQuery extends Lu
iwConfig.setMergePolicy(newLogMergePolicy());
RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConfig);
Document document = new Document();
- Field idField = new StringField("id", "", Field.Store.NO);
+ Field idField = new SortedDocValuesField("id", new BytesRef());
document.add(idField);
iw.addDocument(document);
ir = iw.getReader();
Modified: lucene/dev/branches/lucene2878/lucene/queryparser/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/queryparser/build.xml?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/queryparser/build.xml (original)
+++ lucene/dev/branches/lucene2878/lucene/queryparser/build.xml Mon Dec 1 17:02:49 2014
@@ -142,7 +142,7 @@ import org.apache.lucene.queryparser.fle
<target name="resolve-javacc" xmlns:ivy="antlib:org.apache.ivy.ant">
<!-- setup a "fake" JavaCC distribution folder in ${build.dir} to make JavaCC ANT task happy: -->
- <ivy:retrieve organisation="net.java.dev.javacc" module="javacc" revision="5.0"
+ <ivy:retrieve organisation="net.java.dev.javacc" module="javacc" revision="5.0" symlink="${ivy.symlink}"
inline="true" conf="default" transitive="false" type="jar" sync="true"
pattern="${build.dir}/javacc/bin/lib/[artifact].[ext]"/>
</target>
Modified: lucene/dev/branches/lucene2878/lucene/replicator/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/replicator/build.xml?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/replicator/build.xml (original)
+++ lucene/dev/branches/lucene2878/lucene/replicator/build.xml Mon Dec 1 17:02:49 2014
@@ -32,7 +32,7 @@
<target name="resolve" depends="common.resolve">
<sequential>
<!-- javax.servlet jar -->
- <ivy:retrieve conf="servlet" log="download-only" type="orbit"/>
+ <ivy:retrieve conf="servlet" log="download-only" type="orbit" symlink="${ivy.symlink}"/>
</sequential>
</target>
Modified: lucene/dev/branches/lucene2878/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsReader.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/IDVersionPostingsReader.java Mon Dec 1 17:02:49 2014
@@ -17,6 +17,8 @@ package org.apache.lucene.codecs.idversi
* limitations under the License.
*/
+import java.io.IOException;
+
import org.apache.lucene.codecs.BlockTermState;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.codecs.PostingsReaderBase;
@@ -25,12 +27,8 @@ import org.apache.lucene.index.FieldInfo
import org.apache.lucene.index.SegmentReadState;
import org.apache.lucene.store.DataInput;
import org.apache.lucene.store.IndexInput;
-import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.Bits;
-import java.io.IOException;
-import java.util.Collections;
-
final class IDVersionPostingsReader extends PostingsReaderBase {
@Override
@@ -97,11 +95,6 @@ final class IDVersionPostingsReader exte
public long ramBytesUsed() {
return 0;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
@Override
public void checkIntegrity() throws IOException {
Modified: lucene/dev/branches/lucene2878/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java (original)
+++ lucene/dev/branches/lucene2878/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialExample.java Mon Dec 1 17:02:49 2014
@@ -24,6 +24,7 @@ import com.spatial4j.core.shape.Shape;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.StoredField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
@@ -122,7 +123,8 @@ public class SpatialExample extends Luce
private Document newSampleDocument(int id, Shape... shapes) {
Document doc = new Document();
- doc.add(new IntField("id", id, Field.Store.YES));
+ doc.add(new StoredField("id", id));
+ doc.add(new NumericDocValuesField("id", id));
//Potentially more than one shape in this field is supported by some
// strategies; see the javadocs of the SpatialStrategy impl to see.
for (Shape shape : shapes) {
Modified: lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/DocumentDictionary.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/DocumentDictionary.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/DocumentDictionary.java (original)
+++ lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/DocumentDictionary.java Mon Dec 1 17:02:49 2014
@@ -16,6 +16,7 @@ package org.apache.lucene.search.suggest
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
@@ -30,6 +31,8 @@ import org.apache.lucene.search.spell.Di
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
+
+
/**
* <p>
* Dictionary with terms, weights, payload (optional) and contexts (optional)
@@ -115,6 +118,8 @@ public class DocumentDictionary implemen
private BytesRef currentPayload = null;
private Set<BytesRef> currentContexts;
private final NumericDocValues weightValues;
+ StorableField[] currentDocFields = new StorableField[0];
+ int nextFieldsPosition = 0;
/**
* Creates an iterator over term, weight and payload fields from the lucene
@@ -137,7 +142,24 @@ public class DocumentDictionary implemen
@Override
public BytesRef next() throws IOException {
- while (currentDocId < docCount) {
+ while (true) {
+ if (nextFieldsPosition < currentDocFields.length) {
+ // Still values left from the document
+ StorableField fieldValue = currentDocFields[nextFieldsPosition++];
+ if (fieldValue.binaryValue() != null) {
+ return fieldValue.binaryValue();
+ } else if (fieldValue.stringValue() != null) {
+ return new BytesRef(fieldValue.stringValue());
+ } else {
+ continue;
+ }
+ }
+
+ if (currentDocId == docCount) {
+ // Iterated over all the documents.
+ break;
+ }
+
currentDocId++;
if (liveDocs != null && !liveDocs.get(currentDocId)) {
continue;
@@ -145,34 +167,51 @@ public class DocumentDictionary implemen
StoredDocument doc = reader.document(currentDocId, relevantFields);
- BytesRef tempPayload = null;
- BytesRef tempTerm = null;
Set<BytesRef> tempContexts = new HashSet<>();
+ BytesRef tempPayload;
if (hasPayloads) {
StorableField payload = doc.getField(payloadField);
- if (payload == null || (payload.binaryValue() == null && payload.stringValue() == null)) {
+ if (payload == null) {
+ continue;
+ } else if (payload.binaryValue() != null) {
+ tempPayload = payload.binaryValue();
+ } else if (payload.stringValue() != null) {
+ tempPayload = new BytesRef(payload.stringValue());
+ } else {
continue;
}
- tempPayload = (payload.binaryValue() != null) ? payload.binaryValue() : new BytesRef(payload.stringValue());
+ } else {
+ tempPayload = null;
}
if (hasContexts) {
final StorableField[] contextFields = doc.getFields(contextsField);
for (StorableField contextField : contextFields) {
- if (contextField.binaryValue() == null && contextField.stringValue() == null) {
- continue;
+ if (contextField.binaryValue() != null) {
+ tempContexts.add(contextField.binaryValue());
+ } else if (contextField.stringValue() != null) {
+ tempContexts.add(new BytesRef(contextField.stringValue()));
} else {
- tempContexts.add((contextField.binaryValue() != null) ? contextField.binaryValue() : new BytesRef(contextField.stringValue()));
+ continue;
}
}
}
- StorableField fieldVal = doc.getField(field);
- if (fieldVal == null || (fieldVal.binaryValue() == null && fieldVal.stringValue() == null)) {
+ currentDocFields = doc.getFields(field);
+ nextFieldsPosition = 0;
+ if (currentDocFields.length == 0) { // no values in this document
+ continue;
+ }
+ StorableField fieldValue = currentDocFields[nextFieldsPosition++];
+ BytesRef tempTerm;
+ if (fieldValue.binaryValue() != null) {
+ tempTerm = fieldValue.binaryValue();
+ } else if (fieldValue.stringValue() != null) {
+ tempTerm = new BytesRef(fieldValue.stringValue());
+ } else {
continue;
}
- tempTerm = (fieldVal.stringValue() != null) ? new BytesRef(fieldVal.stringValue()) : fieldVal.binaryValue();
currentPayload = tempPayload;
currentContexts = tempContexts;
@@ -180,6 +219,7 @@ public class DocumentDictionary implemen
return tempTerm;
}
+
return null;
}
Modified: lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/Lookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/Lookup.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/Lookup.java (original)
+++ lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/Lookup.java Mon Dec 1 17:02:49 2014
@@ -30,7 +30,6 @@ import org.apache.lucene.store.DataOutpu
import org.apache.lucene.store.InputStreamDataInput;
import org.apache.lucene.store.OutputStreamDataOutput;
import org.apache.lucene.util.Accountable;
-import org.apache.lucene.util.Accountables;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.PriorityQueue;
@@ -268,14 +267,4 @@ public abstract class Lookup implements
* @throws IOException when fatal IO error occurs.
*/
public abstract boolean load(DataInput input) throws IOException;
-
- /**
- * Returns nested resources of this class.
- * The result should be a point-in-time snapshot (to avoid race conditions).
- * @see Accountables
- */
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return null;
- }
}
Modified: lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java (original)
+++ lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggester.java Mon Dec 1 17:02:49 2014
@@ -22,10 +22,10 @@ import java.io.IOException;
import java.io.StringReader;
import java.nio.file.Path;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.HashMap;
-import java.util.Map;
+import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.apache.lucene.analysis.Analyzer;
@@ -72,8 +72,8 @@ import org.apache.lucene.search.TermQuer
import org.apache.lucene.search.TopFieldCollector;
import org.apache.lucene.search.TopFieldDocs;
import org.apache.lucene.search.suggest.InputIterator;
-import org.apache.lucene.search.suggest.Lookup.LookupResult; // javadocs
import org.apache.lucene.search.suggest.Lookup;
+import org.apache.lucene.search.suggest.Lookup.LookupResult; // javadocs
import org.apache.lucene.store.DataInput;
import org.apache.lucene.store.DataOutput;
import org.apache.lucene.store.Directory;
@@ -603,8 +603,7 @@ public class AnalyzingInfixSuggester ext
LookupResult result;
if (doHighlight) {
- Object highlightKey = highlight(text, matchedTokens, prefixToken);
- result = new LookupResult(highlightKey.toString(), highlightKey, score, payload, contexts);
+ result = new LookupResult(text, highlight(text, matchedTokens, prefixToken), score, payload, contexts);
} else {
result = new LookupResult(text, score, payload, contexts);
}
Modified: lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggester.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggester.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggester.java (original)
+++ lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggester.java Mon Dec 1 17:02:49 2014
@@ -207,8 +207,7 @@ public class BlendedInfixSuggester exten
LookupResult result;
if (doHighlight) {
- Object highlightKey = highlight(text, matchedTokens, prefixToken);
- result = new LookupResult(highlightKey.toString(), highlightKey, score, payload);
+ result = new LookupResult(text, highlight(text, matchedTokens, prefixToken), score, payload);
} else {
result = new LookupResult(text, score, payload);
}
Modified: lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java (original)
+++ lucene/dev/branches/lucene2878/lucene/suggest/src/java/org/apache/lucene/search/suggest/jaspell/JaspellTernarySearchTrie.java Mon Dec 1 17:02:49 2014
@@ -32,7 +32,6 @@ package org.apache.lucene.search.suggest
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
-import java.util.Collections;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
@@ -111,11 +110,6 @@ public class JaspellTernarySearchTrie im
}
return mem;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
/**
@@ -903,9 +897,4 @@ public class JaspellTernarySearchTrie im
}
return mem;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
Modified: lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/DocumentDictionaryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/DocumentDictionaryTest.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/DocumentDictionaryTest.java (original)
+++ lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/DocumentDictionaryTest.java Mon Dec 1 17:02:49 2014
@@ -5,6 +5,7 @@ import java.util.AbstractMap.SimpleEntry
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -298,4 +299,89 @@ public class DocumentDictionaryTest exte
ir.close();
dir.close();
}
+
+ @Test
+ public void testMultiValuedField() throws IOException {
+ Directory dir = newDirectory();
+ IndexWriterConfig iwc = newIndexWriterConfig(random(), new MockAnalyzer(random()));
+ iwc.setMergePolicy(newLogMergePolicy());
+ RandomIndexWriter writer = new RandomIndexWriter(random(), dir, iwc);
+
+ List<Suggestion> suggestions = indexMultiValuedDocuments(atLeast(1000), writer);
+ writer.commit();
+ writer.close();
+
+ IndexReader ir = DirectoryReader.open(dir);
+ Dictionary dictionary = new DocumentDictionary(ir, FIELD_NAME, WEIGHT_FIELD_NAME, PAYLOAD_FIELD_NAME, CONTEXT_FIELD_NAME);
+ InputIterator inputIterator = dictionary.getEntryIterator();
+ BytesRef f;
+ Iterator<Suggestion> suggestionsIter = suggestions.iterator();
+ while((f = inputIterator.next())!=null) {
+ Suggestion nextSuggestion = suggestionsIter.next();
+ assertTrue(f.equals(nextSuggestion.term));
+ long weight = nextSuggestion.weight;
+ assertEquals(inputIterator.weight(), (weight != -1) ? weight : 0);
+ assertTrue(inputIterator.payload().equals(nextSuggestion.payload));
+ assertTrue(inputIterator.contexts().equals(nextSuggestion.contexts));
+ }
+ assertFalse(suggestionsIter.hasNext());
+ ir.close();
+ dir.close();
+ }
+
+ private List<Suggestion> indexMultiValuedDocuments(int numDocs, RandomIndexWriter writer) throws IOException {
+ List<Suggestion> suggestionList = new ArrayList<>(numDocs);
+
+ for(int i=0; i<numDocs; i++) {
+ Document doc = new Document();
+ Field field;
+ BytesRef payloadValue;
+ Set<BytesRef> contextValues = new HashSet<>();
+ long numericValue = -1; //-1 for missing weight
+ BytesRef term;
+
+ payloadValue = new BytesRef("payload_" + i);
+ field = new StoredField(PAYLOAD_FIELD_NAME, payloadValue);
+ doc.add(field);
+
+ if (usually()) {
+ numericValue = 100 + i;
+ field = new NumericDocValuesField(WEIGHT_FIELD_NAME, numericValue);
+ doc.add(field);
+ }
+
+ int numContexts = atLeast(1);
+ for (int j=0; j<numContexts; j++) {
+ BytesRef contextValue = new BytesRef("context_" + i + "_" + j);
+ field = new StoredField(CONTEXT_FIELD_NAME, contextValue);
+ doc.add(field);
+ contextValues.add(contextValue);
+ }
+
+ int numSuggestions = atLeast(2);
+ for (int j=0; j<numSuggestions; j++) {
+ term = new BytesRef("field_" + i + "_" + j);
+ field = new StoredField(FIELD_NAME, term);
+ doc.add(field);
+
+ Suggestion suggestionValue = new Suggestion();
+ suggestionValue.payload = payloadValue;
+ suggestionValue.contexts = contextValues;
+ suggestionValue.weight = numericValue;
+ suggestionValue.term = term;
+ suggestionList.add(suggestionValue);
+ }
+ writer.addDocument(doc);
+ }
+ return suggestionList;
+ }
+
+ private class Suggestion {
+ private long weight;
+ private BytesRef payload;
+ private Set<BytesRef> contexts;
+ private BytesRef term;
+ }
+
+
}
Modified: lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java (original)
+++ lucene/dev/branches/lucene2878/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java Mon Dec 1 17:02:49 2014
@@ -61,29 +61,34 @@ public class AnalyzingInfixSuggesterTest
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
assertEquals(2, results.size());
- assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
- assertEquals("lend me your <b>ear</b>", results.get(1).key);
+ assertEquals("lend me your ear", results.get(1).key);
+ assertEquals("lend me your <b>ear</b>", results.get(1).highlightKey);
assertEquals(8, results.get(1).value);
assertEquals(new BytesRef("foobar"), results.get(1).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("ear ", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("lend me your <b>ear</b>", results.get(0).key);
+ assertEquals("lend me your ear", results.get(0).key);
+ assertEquals("lend me your <b>ear</b>", results.get(0).highlightKey);
assertEquals(8, results.get(0).value);
assertEquals(new BytesRef("foobar"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("pen", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("p", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
@@ -107,7 +112,8 @@ public class AnalyzingInfixSuggesterTest
suggester = new AnalyzingInfixSuggester(newFSDirectory(tempDir), a, a, 3, false);
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
assertEquals(2, results.size());
- assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
assertEquals(2, suggester.getCount());
@@ -228,16 +234,14 @@ public class AnalyzingInfixSuggesterTest
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, doHighlight);
assertEquals(2, results.size());
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
if (doHighlight) {
- assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).key);
- } else {
- assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).highlightKey);
}
assertEquals(10, results.get(0).value);
+ assertEquals("lend me your ear", results.get(1).key);
if (doHighlight) {
- assertEquals("lend me your <b>ear</b>", results.get(1).key);
- } else {
- assertEquals("lend me your ear", results.get(1).key);
+ assertEquals("lend me your <b>ear</b>", results.get(1).highlightKey);
}
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
assertEquals(8, results.get(1).value);
@@ -245,30 +249,27 @@ public class AnalyzingInfixSuggesterTest
results = suggester.lookup(TestUtil.stringToCharSequence("ear ", random()), 10, true, doHighlight);
assertEquals(1, results.size());
+ assertEquals("lend me your ear", results.get(0).key);
if (doHighlight) {
- assertEquals("lend me your <b>ear</b>", results.get(0).key);
- } else {
- assertEquals("lend me your ear", results.get(0).key);
+ assertEquals("lend me your <b>ear</b>", results.get(0).highlightKey);
}
assertEquals(8, results.get(0).value);
assertEquals(new BytesRef("foobar"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("pen", random()), 10, true, doHighlight);
assertEquals(1, results.size());
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
if (doHighlight) {
- assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).key);
- } else {
- assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).highlightKey);
}
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("p", random()), 10, true, doHighlight);
assertEquals(1, results.size());
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
if (doHighlight) {
- assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).key);
- } else {
- assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).highlightKey);
}
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
@@ -291,7 +292,8 @@ public class AnalyzingInfixSuggesterTest
suggester.build(new InputArrayIterator(keys));
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("penn", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>penn</b>y saved is a <b>penn</b>y earned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>penn</b>y saved is a <b>penn</b>y earned", results.get(0).highlightKey);
suggester.close();
}
@@ -305,7 +307,8 @@ public class AnalyzingInfixSuggesterTest
suggester.build(new InputArrayIterator(keys));
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("penn", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>Penn</b>y saved is a <b>penn</b>y earned", results.get(0).key);
+ assertEquals("a Penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>Penn</b>y saved is a <b>penn</b>y earned", results.get(0).highlightKey);
suggester.close();
// Try again, but overriding addPrefixMatch to highlight
@@ -321,7 +324,8 @@ public class AnalyzingInfixSuggesterTest
suggester.build(new InputArrayIterator(keys));
results = suggester.lookup(TestUtil.stringToCharSequence("penn", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>Penny</b> saved is a <b>penny</b> earned", results.get(0).key);
+ assertEquals("a Penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>Penny</b> saved is a <b>penny</b> earned", results.get(0).highlightKey);
suggester.close();
}
@@ -366,7 +370,8 @@ public class AnalyzingInfixSuggesterTest
suggester.build(new InputArrayIterator(keys));
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("a", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a bob for <b>a</b>pples", results.get(0).key);
+ assertEquals("a bob for apples", results.get(0).key);
+ assertEquals("a bob for <b>a</b>pples", results.get(0).highlightKey);
suggester.close();
}
@@ -379,29 +384,34 @@ public class AnalyzingInfixSuggesterTest
suggester.refresh();
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
assertEquals(2, results.size());
- assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
- assertEquals("lend me your <b>ear</b>", results.get(1).key);
+ assertEquals("lend me your ear", results.get(1).key);
+ assertEquals("lend me your <b>ear</b>", results.get(1).highlightKey);
assertEquals(8, results.get(1).value);
assertEquals(new BytesRef("foobar"), results.get(1).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("ear ", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("lend me your <b>ear</b>", results.get(0).key);
+ assertEquals("lend me your ear", results.get(0).key);
+ assertEquals("lend me your <b>ear</b>", results.get(0).highlightKey);
assertEquals(8, results.get(0).value);
assertEquals(new BytesRef("foobar"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("pen", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("p", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
@@ -417,7 +427,8 @@ public class AnalyzingInfixSuggesterTest
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("pen p", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("the <b>pen</b> is <b>p</b>retty", results.get(0).key);
+ assertEquals("the pen is pretty", results.get(0).key);
+ assertEquals("the <b>pen</b> is <b>p</b>retty", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
suggester.close();
@@ -672,7 +683,11 @@ public class AnalyzingInfixSuggesterTest
assertEquals(expectedCount, actual.size());
for(int i=0;i<expectedCount;i++) {
- assertEquals(expected.get(i).term.utf8ToString(), actual.get(i).key.toString());
+ if (doHilite) {
+ assertEquals(expected.get(i).term.utf8ToString(), actual.get(i).highlightKey);
+ } else {
+ assertEquals(expected.get(i).term.utf8ToString(), actual.get(i).key);
+ }
assertEquals(expected.get(i).v, actual.get(i).value);
assertEquals(expected.get(i).payload, actual.get(i).payload);
}
@@ -740,7 +755,8 @@ public class AnalyzingInfixSuggesterTest
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("lend me your <b>ear</b>", results.get(0).key);
+ assertEquals("lend me your ear", results.get(0).key);
+ assertEquals("lend me your <b>ear</b>", results.get(0).highlightKey);
assertEquals(8, results.get(0).value);
assertEquals(new BytesRef("foobar"), results.get(0).payload);
@@ -752,29 +768,34 @@ public class AnalyzingInfixSuggesterTest
results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
assertEquals(2, results.size());
- assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
- assertEquals("lend me your <b>ear</b>", results.get(1).key);
+ assertEquals("lend me your ear", results.get(1).key);
+ assertEquals("lend me your <b>ear</b>", results.get(1).highlightKey);
assertEquals(8, results.get(1).value);
assertEquals(new BytesRef("foobar"), results.get(1).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("ear ", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("lend me your <b>ear</b>", results.get(0).key);
+ assertEquals("lend me your ear", results.get(0).key);
+ assertEquals("lend me your <b>ear</b>", results.get(0).highlightKey);
assertEquals(8, results.get(0).value);
assertEquals(new BytesRef("foobar"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("pen", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>pen</b>ny saved is a <b>pen</b>ny earned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
results = suggester.lookup(TestUtil.stringToCharSequence("p", random()), 10, true, true);
assertEquals(1, results.size());
- assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).key);
+ assertEquals("a penny saved is a penny earned", results.get(0).key);
+ assertEquals("a <b>p</b>enny saved is a <b>p</b>enny earned", results.get(0).highlightKey);
assertEquals(10, results.get(0).value);
assertEquals(new BytesRef("foobaz"), results.get(0).payload);
@@ -786,10 +807,12 @@ public class AnalyzingInfixSuggesterTest
results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
assertEquals(2, results.size());
- assertEquals("lend me your <b>ear</b>", results.get(0).key);
+ assertEquals("lend me your ear", results.get(0).key);
+ assertEquals("lend me your <b>ear</b>", results.get(0).highlightKey);
assertEquals(12, results.get(0).value);
assertEquals(new BytesRef("foobox"), results.get(0).payload);
- assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(1).key);
+ assertEquals("a penny saved is a penny earned", results.get(1).key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", results.get(1).highlightKey);
assertEquals(10, results.get(1).value);
assertEquals(new BytesRef("foobaz"), results.get(1).payload);
suggester.close();
@@ -887,7 +910,8 @@ public class AnalyzingInfixSuggesterTest
List<LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
assertEquals(2, results.size());
LookupResult result = results.get(0);
- assertEquals("a penny saved is a penny <b>ear</b>ned", result.key);
+ assertEquals("a penny saved is a penny earned", result.key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", result.highlightKey);
assertEquals(10, result.value);
assertEquals(new BytesRef("foobaz"), result.payload);
assertNotNull(result.contexts);
@@ -896,7 +920,8 @@ public class AnalyzingInfixSuggesterTest
assertTrue(result.contexts.contains(new BytesRef("baz")));
result = results.get(1);
- assertEquals("lend me your <b>ear</b>", result.key);
+ assertEquals("lend me your ear", result.key);
+ assertEquals("lend me your <b>ear</b>", result.highlightKey);
assertEquals(8, result.value);
assertEquals(new BytesRef("foobar"), result.payload);
assertNotNull(result.contexts);
@@ -909,7 +934,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(2, results.size());
result = results.get(0);
- assertEquals("a penny saved is a penny <b>ear</b>ned", result.key);
+ assertEquals("a penny saved is a penny earned", result.key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", result.highlightKey);
assertEquals(10, result.value);
assertEquals(new BytesRef("foobaz"), result.payload);
assertNotNull(result.contexts);
@@ -918,7 +944,8 @@ public class AnalyzingInfixSuggesterTest
assertTrue(result.contexts.contains(new BytesRef("baz")));
result = results.get(1);
- assertEquals("lend me your <b>ear</b>", result.key);
+ assertEquals("lend me your ear", result.key);
+ assertEquals("lend me your <b>ear</b>", result.highlightKey);
assertEquals(8, result.value);
assertEquals(new BytesRef("foobar"), result.payload);
assertNotNull(result.contexts);
@@ -931,7 +958,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(1, results.size());
result = results.get(0);
- assertEquals("lend me your <b>ear</b>", result.key);
+ assertEquals("lend me your ear", result.key);
+ assertEquals("lend me your <b>ear</b>", result.highlightKey);
assertEquals(8, result.value);
assertEquals(new BytesRef("foobar"), result.payload);
assertNotNull(result.contexts);
@@ -952,7 +980,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(1, results.size());
result = results.get(0);
- assertEquals("a penny saved is a penny <b>ear</b>ned", result.key);
+ assertEquals("a penny saved is a penny earned", result.key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", result.highlightKey);
assertEquals(10, result.value);
assertEquals(new BytesRef("foobaz"), result.payload);
assertNotNull(result.contexts);
@@ -965,7 +994,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(2, results.size());
result = results.get(0);
- assertEquals("a penny saved is a penny <b>ear</b>ned", result.key);
+ assertEquals("a penny saved is a penny earned", result.key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", result.highlightKey);
assertEquals(10, result.value);
assertEquals(new BytesRef("foobaz"), result.payload);
assertNotNull(result.contexts);
@@ -974,7 +1004,8 @@ public class AnalyzingInfixSuggesterTest
assertTrue(result.contexts.contains(new BytesRef("baz")));
result = results.get(1);
- assertEquals("lend me your <b>ear</b>", result.key);
+ assertEquals("lend me your ear", result.key);
+ assertEquals("lend me your <b>ear</b>", result.highlightKey);
assertEquals(8, result.value);
assertEquals(new BytesRef("foobar"), result.payload);
assertNotNull(result.contexts);
@@ -987,7 +1018,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(2, results.size());
result = results.get(0);
- assertEquals("a penny saved is a penny <b>ear</b>ned", result.key);
+ assertEquals("a penny saved is a penny earned", result.key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", result.highlightKey);
assertEquals(10, result.value);
assertEquals(new BytesRef("foobaz"), result.payload);
assertNotNull(result.contexts);
@@ -996,7 +1028,8 @@ public class AnalyzingInfixSuggesterTest
assertTrue(result.contexts.contains(new BytesRef("baz")));
result = results.get(1);
- assertEquals("lend me your <b>ear</b>", result.key);
+ assertEquals("lend me your ear", result.key);
+ assertEquals("lend me your <b>ear</b>", result.highlightKey);
assertEquals(8, result.value);
assertEquals(new BytesRef("foobar"), result.payload);
assertNotNull(result.contexts);
@@ -1012,7 +1045,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(1, results.size());
result = results.get(0);
- assertEquals("lend me your <b>ear</b>", result.key);
+ assertEquals("lend me your ear", result.key);
+ assertEquals("lend me your <b>ear</b>", result.highlightKey);
assertEquals(8, result.value);
assertEquals(new BytesRef("foobar"), result.payload);
assertNotNull(result.contexts);
@@ -1042,7 +1076,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(2, results.size());
result = results.get(0);
- assertEquals("a penny saved is a penny <b>ear</b>ned", result.key);
+ assertEquals("a penny saved is a penny earned", result.key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", result.highlightKey);
assertEquals(10, result.value);
assertEquals(new BytesRef("foobaz"), result.payload);
assertNotNull(result.contexts);
@@ -1051,7 +1086,8 @@ public class AnalyzingInfixSuggesterTest
assertTrue(result.contexts.contains(new BytesRef("baz")));
result = results.get(1);
- assertEquals("lend me your <b>ear</b>", result.key);
+ assertEquals("lend me your ear", result.key);
+ assertEquals("lend me your <b>ear</b>", result.highlightKey);
assertEquals(8, result.value);
assertEquals(new BytesRef("foobar"), result.payload);
assertNotNull(result.contexts);
@@ -1067,7 +1103,8 @@ public class AnalyzingInfixSuggesterTest
assertEquals(1, results.size());
result = results.get(0);
- assertEquals("a penny saved is a penny <b>ear</b>ned", result.key);
+ assertEquals("a penny saved is a penny earned", result.key);
+ assertEquals("a penny saved is a penny <b>ear</b>ned", result.highlightKey);
assertEquals(10, result.value);
assertEquals(new BytesRef("foobaz"), result.payload);
assertNotNull(result.contexts);
Modified: lucene/dev/branches/lucene2878/lucene/test-framework/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/test-framework/build.xml?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/test-framework/build.xml (original)
+++ lucene/dev/branches/lucene2878/lucene/test-framework/build.xml Mon Dec 1 17:02:49 2014
@@ -22,6 +22,11 @@
<property name="build.dir" location="../build/test-framework"/>
+ <!-- file is part of the API -->
+ <property name="forbidden-base-excludes" value="
+ org/apache/lucene/mockfile/FilterPath.class
+ "/>
+
<import file="../common-build.xml"/>
<path id="classpath">
Modified: lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/codecs/ramonly/RAMOnlyPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/codecs/ramonly/RAMOnlyPostingsFormat.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/codecs/ramonly/RAMOnlyPostingsFormat.java (original)
+++ lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/codecs/ramonly/RAMOnlyPostingsFormat.java Mon Dec 1 17:02:49 2014
@@ -128,11 +128,6 @@ public final class RAMOnlyPostingsFormat
}
@Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
-
- @Override
public long size() {
return termToDocs.size();
}
@@ -194,11 +189,6 @@ public final class RAMOnlyPostingsFormat
}
return sizeInBytes;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
static class RAMDoc implements Accountable {
@@ -223,11 +213,6 @@ public final class RAMOnlyPostingsFormat
}
return sizeInBytes;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
// Classes for writing to the postings state
Modified: lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java Mon Dec 1 17:02:49 2014
@@ -43,8 +43,7 @@ public class AssertingLeafReader extends
@Override
public Fields fields() throws IOException {
- Fields fields = super.fields();
- return fields == null ? null : new AssertingFields(fields);
+ return new AssertingFields(super.fields());
}
@Override
Modified: lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java?rev=1642713&r1=1642712&r2=1642713&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java (original)
+++ lucene/dev/branches/lucene2878/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java Mon Dec 1 17:02:49 2014
@@ -2451,6 +2451,7 @@ public abstract class BaseDocValuesForma
}
/** Tests dv against stored fields with threads (all types + missing) */
+ @Slow
public void testThreads2() throws Exception {
assumeTrue("Codec does not support getDocsWithField", codecSupportsDocsWithField());
assumeTrue("Codec does not support SORTED_SET", codecSupportsSortedSet());
@@ -2623,6 +2624,7 @@ public abstract class BaseDocValuesForma
dir.close();
}
+ @Slow
public void testThreads3() throws Exception {
assumeTrue("Codec does not support getDocsWithField", codecSupportsDocsWithField());
assumeTrue("Codec does not support SORTED_SET", codecSupportsSortedSet());