You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2011/06/29 00:33:44 UTC
svn commit: r1140874 - in /lucene/dev/branches/branch_3x: ./ lucene/
lucene/backwards/ lucene/backwards/src/test-framework/
lucene/backwards/src/test/ lucene/contrib/ lucene/contrib/join/
lucene/contrib/join/src/java/org/apache/lucene/search/join/ luce...
Author: mikemccand
Date: Tue Jun 28 22:33:43 2011
New Revision: 1140874
URL: http://svn.apache.org/viewvc?rev=1140874&view=rev
Log:
LUCENE-3171: add lucene/contrib/join to enable joining parent + child documents when indexed as a doc block
Added:
lucene/dev/branches/branch_3x/lucene/contrib/join/
- copied from r1140852, lucene/dev/trunk/modules/join/
Modified:
lucene/dev/branches/branch_3x/ (props changed)
lucene/dev/branches/branch_3x/lucene/ (props changed)
lucene/dev/branches/branch_3x/lucene/backwards/ (props changed)
lucene/dev/branches/branch_3x/lucene/backwards/src/test/ (props changed)
lucene/dev/branches/branch_3x/lucene/backwards/src/test-framework/ (props changed)
lucene/dev/branches/branch_3x/lucene/build.xml
lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt
lucene/dev/branches/branch_3x/lucene/contrib/join/build.xml
lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinCollector.java
lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java
lucene/dev/branches/branch_3x/lucene/contrib/join/src/test/org/apache/lucene/search/TestBlockJoin.java
lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldComparator.java
lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java
lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/Query.java
lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/TopFieldCollector.java
lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/ArrayUtil.java
lucene/dev/branches/branch_3x/lucene/src/site/build/site/contributions.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo2.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/fileformats.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/gettingstarted.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/index.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/linkmap.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/lucene-contrib/index.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/queryparsersyntax.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/scoring.html
lucene/dev/branches/branch_3x/lucene/src/site/build/site/systemrequirements.html
lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/lucene-contrib/index.xml
lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/site.xml
lucene/dev/branches/branch_3x/lucene/src/test-framework/org/apache/lucene/util/_TestUtil.java
lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
lucene/dev/branches/branch_3x/solr/ (props changed)
Modified: lucene/dev/branches/branch_3x/lucene/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/build.xml?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/build.xml (original)
+++ lucene/dev/branches/branch_3x/lucene/build.xml Tue Jun 28 22:33:43 2011
@@ -238,6 +238,7 @@
<packageset dir="contrib/icu/src/java"/>
<packageset dir="contrib/highlighter/src/java"/>
<packageset dir="contrib/instantiated/src/java"/>
+ <packageset dir="contrib/join/src/java"/>
<packageset dir="contrib/memory/src/java"/>
<packageset dir="contrib/misc/src/java"/>
<packageset dir="contrib/queries/src/java"/>
@@ -262,6 +263,7 @@
<group title="contrib: Grouping" packages="org.apache.lucene.search.grouping*"/>
<group title="contrib: Highlighter" packages="org.apache.lucene.search.highlight*:org.apache.lucene.search.vectorhighlight*"/>
<group title="contrib: Instantiated" packages="org.apache.lucene.store.instantiated*"/>
+ <group title="contrib: Join" packages="org.apache.lucene.search.join*"/>
<group title="contrib: Memory" packages="org.apache.lucene.index.memory*"/>
<group title="contrib: Misc " packages="org.apache.lucene.misc*"/>
<group title="contrib: Queries" packages="org.apache.lucene.search.similar*:org.apache.lucene.search.regex*:org.apache.regexp*"/>
Modified: lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/CHANGES.txt Tue Jun 28 22:33:43 2011
@@ -11,6 +11,12 @@ New Features
highlighting speed up. Use FastVectorHighlighter.setPhraseLimit() to set limit
(e.g. 5000). (Mike Sokolov via Koji Sekiguchi)
+ * LUCENE-3171: Added BlockJoinQuery and BlockJoinCollector, under the
+ new contrib/join module, to enable searches that require joining
+ between parent and child documents. Joined (children + parent)
+ documents must be indexed as a document block, using
+ IndexWriter.add/UpdateDocuments (Mark Harwood, Mike McCandless)
+
API Changes
Bug Fixes
Modified: lucene/dev/branches/branch_3x/lucene/contrib/join/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/join/build.xml?rev=1140874&r1=1140852&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/join/build.xml (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/join/build.xml Tue Jun 28 22:33:43 2011
@@ -5,13 +5,12 @@
</description>
<property name="build.dir" location="build/" />
- <import file="../../lucene/contrib/contrib-build.xml"/>
+ <import file="../contrib-build.xml"/>
<property name="build.dir" location="build/" />
<property name="dist.dir" location="dist/" />
- <module-uptodate name="grouping" jarfile="${common.dir}/../modules/grouping/build/lucene-grouping-${version}.jar"
- property="grouping.uptodate" classpath.property="grouping.jar"/>
+ <contrib-uptodate name="grouping" property="grouping.uptodate" classpath.property="grouping.jar"/>
<path id="classpath">
<pathelement path="${grouping.jar}"/>
@@ -29,7 +28,7 @@
<target name="compile-grouping" unless="grouping.uptodate">
<subant target="default">
- <fileset dir="${common.dir}/../modules/grouping" includes="build.xml"/>
+ <fileset dir="../grouping" includes="build.xml"/>
</subant>
</target>
Modified: lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinCollector.java?rev=1140874&r1=1140852&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinCollector.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinCollector.java Tue Jun 28 22:33:43 2011
@@ -22,7 +22,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter; // javadocs
import org.apache.lucene.search.Collector;
@@ -104,7 +103,7 @@ public class BlockJoinCollector extends
private int docBase;
private BlockJoinQuery.BlockJoinScorer[] joinScorers = new BlockJoinQuery.BlockJoinScorer[0];
- private IndexReader.AtomicReaderContext currentReaderContext;
+ private IndexReader currentReader;
private Scorer scorer;
private boolean queueFull;
@@ -142,7 +141,8 @@ public class BlockJoinCollector extends
}
counts = new int[numJoins];
}
- AtomicReaderContext readerContext;
+ IndexReader reader;
+ int docBase;
int[][] docs;
float[][] scores;
int[] counts;
@@ -197,7 +197,8 @@ public class BlockJoinCollector extends
score = scorer.score();
}
bottom.doc = docBase + parentDoc;
- bottom.readerContext = currentReaderContext;
+ bottom.reader = currentReader;
+ bottom.docBase = docBase;
bottom.score = score;
copyGroups(bottom);
bottom = queue.updateTop();
@@ -215,7 +216,8 @@ public class BlockJoinCollector extends
}
//System.out.println(" startup: new OG doc=" + (docBase+parentDoc));
final OneGroup og = new OneGroup(comparatorSlot, docBase+parentDoc, score, joinScorers.length, trackScores);
- og.readerContext = currentReaderContext;
+ og.reader = currentReader;
+ og.docBase = docBase;
copyGroups(og);
bottom = queue.add(og);
queueFull = totalHitCount == numParentHits;
@@ -268,11 +270,11 @@ public class BlockJoinCollector extends
}
@Override
- public void setNextReader(AtomicReaderContext context) throws IOException {
- currentReaderContext = context;
- docBase = context.docBase;
+ public void setNextReader(IndexReader reader, int docBase) throws IOException {
+ currentReader = reader;
+ this.docBase = docBase;
for (int compIDX = 0; compIDX < comparators.length; compIDX++) {
- queue.setComparator(compIDX, comparators[compIDX].setNextReader(context));
+ comparators[compIDX].setNextReader(reader, docBase);
}
}
@@ -432,7 +434,7 @@ public class BlockJoinCollector extends
}
collector.setScorer(fakeScorer);
- collector.setNextReader(og.readerContext);
+ collector.setNextReader(og.reader, og.docBase);
final int numChildDocs = og.counts[slot];
for(int docIDX=0;docIDX<numChildDocs;docIDX++) {
final int doc = og.docs[slot][docIDX];
Modified: lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java?rev=1140874&r1=1140852&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java Tue Jun 28 22:33:43 2011
@@ -20,7 +20,6 @@ package org.apache.lucene.search.join;
import java.io.IOException;
import java.util.Set;
-import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter; // javadocs
import org.apache.lucene.index.Term;
@@ -29,9 +28,9 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.Filter;
-import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Scorer;
+import org.apache.lucene.search.Searcher;
import org.apache.lucene.search.Weight;
import org.apache.lucene.search.grouping.TopGroups;
import org.apache.lucene.util.ArrayUtil;
@@ -108,7 +107,8 @@ public class BlockJoinQuery extends Quer
this.scoreMode = scoreMode;
}
- public Weight createWeight(IndexSearcher searcher) throws IOException {
+ @Override
+ public Weight createWeight(Searcher searcher) throws IOException {
return new BlockJoinWeight(this, childQuery.createWeight(searcher), parentsFilter, scoreMode);
}
@@ -147,9 +147,9 @@ public class BlockJoinQuery extends Quer
}
@Override
- public Scorer scorer(AtomicReaderContext readerContext, ScorerContext context) throws IOException {
+ public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
// Pass scoreDocsInOrder true, topScorer false to our sub:
- final Scorer childScorer = childWeight.scorer(readerContext, ScorerContext.def().scoreDocsInOrder(true).topScorer(false));
+ final Scorer childScorer = childWeight.scorer(reader, true, false);
if (childScorer == null) {
// No matches
@@ -162,7 +162,7 @@ public class BlockJoinQuery extends Quer
return null;
}
- final DocIdSet parents = parentsFilter.getDocIdSet(readerContext);
+ final DocIdSet parents = parentsFilter.getDocIdSet(reader);
// TODO: once we do random-access filters we can
// generalize this:
if (parents == null) {
@@ -177,7 +177,7 @@ public class BlockJoinQuery extends Quer
}
@Override
- public Explanation explain(AtomicReaderContext reader, int doc) throws IOException {
+ public Explanation explain(IndexReader reader, int doc) throws IOException {
// TODO
throw new UnsupportedOperationException(getClass().getName() +
" cannot explain match on parent document");
Modified: lucene/dev/branches/branch_3x/lucene/contrib/join/src/test/org/apache/lucene/search/TestBlockJoin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/join/src/test/org/apache/lucene/search/TestBlockJoin.java?rev=1140874&r1=1140852&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/join/src/test/org/apache/lucene/search/TestBlockJoin.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/join/src/test/org/apache/lucene/search/TestBlockJoin.java Tue Jun 28 22:33:43 2011
@@ -157,13 +157,13 @@ public class TestBlockJoin extends Lucen
// not comparable across the two indices
// sortFields.add(SortField.FIELD_SCORE);
if (random.nextBoolean()) {
- sortFields.add(new SortField(prefix + random.nextInt(numFields), SortField.Type.STRING, random.nextBoolean()));
+ sortFields.add(new SortField(prefix + random.nextInt(numFields), SortField.STRING, random.nextBoolean()));
} else if (random.nextBoolean()) {
- sortFields.add(new SortField(prefix + random.nextInt(numFields), SortField.Type.STRING, random.nextBoolean()));
- sortFields.add(new SortField(prefix + random.nextInt(numFields), SortField.Type.STRING, random.nextBoolean()));
+ sortFields.add(new SortField(prefix + random.nextInt(numFields), SortField.STRING, random.nextBoolean()));
+ sortFields.add(new SortField(prefix + random.nextInt(numFields), SortField.STRING, random.nextBoolean()));
}
// Break ties:
- sortFields.add(new SortField(prefix + "ID", SortField.Type.INT));
+ sortFields.add(new SortField(prefix + "ID", SortField.INT));
return new Sort(sortFields.toArray(new SortField[sortFields.size()]));
}
Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldComparator.java?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldComparator.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldComparator.java Tue Jun 28 22:33:43 2011
@@ -569,8 +569,13 @@ public abstract class FieldComparator<T>
@Override
public void setScorer(Scorer scorer) {
// wrap with a ScoreCachingWrappingScorer so that successive calls to
- // score() will not incur score computation over and over again.
- this.scorer = new ScoreCachingWrappingScorer(scorer);
+ // score() will not incur score computation over and
+ // over again.
+ if (!(scorer instanceof ScoreCachingWrappingScorer)) {
+ this.scorer = new ScoreCachingWrappingScorer(scorer);
+ } else {
+ this.scorer = scorer;
+ }
}
@Override
Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/FieldValueHitQueue.java Tue Jun 28 22:33:43 2011
@@ -31,12 +31,12 @@ import org.apache.lucene.util.PriorityQu
* @see Searcher#search(Query,Filter,int,Sort)
* @see FieldCache
*/
-public abstract class FieldValueHitQueue extends PriorityQueue<FieldValueHitQueue.Entry> {
+public abstract class FieldValueHitQueue<T extends FieldValueHitQueue.Entry> extends PriorityQueue<T> {
- final static class Entry extends ScoreDoc {
- int slot;
+ public static class Entry extends ScoreDoc {
+ public int slot;
- Entry(int slot, int doc, float score) {
+ public Entry(int slot, int doc, float score) {
super(doc, score);
this.slot = slot;
}
@@ -51,7 +51,7 @@ public abstract class FieldValueHitQueue
* An implementation of {@link FieldValueHitQueue} which is optimized in case
* there is just one comparator.
*/
- private static final class OneComparatorFieldValueHitQueue extends FieldValueHitQueue {
+ private static final class OneComparatorFieldValueHitQueue<T extends FieldValueHitQueue.Entry> extends FieldValueHitQueue<T> {
private final FieldComparator comparator;
private final int oneReverseMul;
@@ -97,7 +97,7 @@ public abstract class FieldValueHitQueue
* An implementation of {@link FieldValueHitQueue} which is optimized in case
* there is more than one comparator.
*/
- private static final class MultiComparatorsFieldValueHitQueue extends FieldValueHitQueue {
+ private static final class MultiComparatorsFieldValueHitQueue<T extends FieldValueHitQueue.Entry> extends FieldValueHitQueue<T> {
public MultiComparatorsFieldValueHitQueue(SortField[] fields, int size)
throws IOException {
@@ -162,22 +162,26 @@ public abstract class FieldValueHitQueue
* The number of hits to retain. Must be greater than zero.
* @throws IOException
*/
- public static FieldValueHitQueue create(SortField[] fields, int size) throws IOException {
+ public static <T extends FieldValueHitQueue.Entry> FieldValueHitQueue<T> create(SortField[] fields, int size) throws IOException {
if (fields.length == 0) {
throw new IllegalArgumentException("Sort must contain at least one field");
}
if (fields.length == 1) {
- return new OneComparatorFieldValueHitQueue(fields, size);
+ return new OneComparatorFieldValueHitQueue<T>(fields, size);
} else {
- return new MultiComparatorsFieldValueHitQueue(fields, size);
+ return new MultiComparatorsFieldValueHitQueue<T>(fields, size);
}
}
- FieldComparator[] getComparators() { return comparators; }
+ public FieldComparator[] getComparators() {
+ return comparators;
+ }
- int[] getReverseMul() { return reverseMul; }
+ public int[] getReverseMul() {
+ return reverseMul;
+ }
/** Stores the sort criteria being used. */
protected final SortField[] fields;
Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/Query.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/Query.java?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/Query.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/Query.java Tue Jun 28 22:33:43 2011
@@ -90,7 +90,7 @@ public abstract class Query implements j
* Only implemented by primitive queries, which re-write to themselves.
*/
public Weight createWeight(Searcher searcher) throws IOException {
- throw new UnsupportedOperationException();
+ throw new UnsupportedOperationException("Query " + this + " does not implement createWeight");
}
/**
Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/TopFieldCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/TopFieldCollector.java?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/TopFieldCollector.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/search/TopFieldCollector.java Tue Jun 28 22:33:43 2011
@@ -49,7 +49,7 @@ public abstract class TopFieldCollector
final FieldComparator comparator;
final int reverseMul;
- public OneComparatorNonScoringCollector(FieldValueHitQueue queue,
+ public OneComparatorNonScoringCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
comparator = queue.getComparators()[0];
@@ -110,7 +110,7 @@ public abstract class TopFieldCollector
private static class OutOfOrderOneComparatorNonScoringCollector extends
OneComparatorNonScoringCollector {
- public OutOfOrderOneComparatorNonScoringCollector(FieldValueHitQueue queue,
+ public OutOfOrderOneComparatorNonScoringCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
}
@@ -157,7 +157,7 @@ public abstract class TopFieldCollector
Scorer scorer;
- public OneComparatorScoringNoMaxScoreCollector(FieldValueHitQueue queue,
+ public OneComparatorScoringNoMaxScoreCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
}
@@ -218,7 +218,7 @@ public abstract class TopFieldCollector
OneComparatorScoringNoMaxScoreCollector {
public OutOfOrderOneComparatorScoringNoMaxScoreCollector(
- FieldValueHitQueue queue, int numHits, boolean fillFields)
+ FieldValueHitQueue<Entry> queue, int numHits, boolean fillFields)
throws IOException {
super(queue, numHits, fillFields);
}
@@ -271,7 +271,7 @@ public abstract class TopFieldCollector
Scorer scorer;
- public OneComparatorScoringMaxScoreCollector(FieldValueHitQueue queue,
+ public OneComparatorScoringMaxScoreCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
// Must set maxScore to NEG_INF, or otherwise Math.max always returns NaN.
@@ -331,7 +331,7 @@ public abstract class TopFieldCollector
private static class OutOfOrderOneComparatorScoringMaxScoreCollector extends
OneComparatorScoringMaxScoreCollector {
- public OutOfOrderOneComparatorScoringMaxScoreCollector(FieldValueHitQueue queue,
+ public OutOfOrderOneComparatorScoringMaxScoreCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
}
@@ -381,8 +381,8 @@ public abstract class TopFieldCollector
final FieldComparator[] comparators;
final int[] reverseMul;
-
- public MultiComparatorNonScoringCollector(FieldValueHitQueue queue,
+
+ public MultiComparatorNonScoringCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
comparators = queue.getComparators();
@@ -467,7 +467,7 @@ public abstract class TopFieldCollector
private static class OutOfOrderMultiComparatorNonScoringCollector extends
MultiComparatorNonScoringCollector {
- public OutOfOrderMultiComparatorNonScoringCollector(FieldValueHitQueue queue,
+ public OutOfOrderMultiComparatorNonScoringCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
}
@@ -536,7 +536,7 @@ public abstract class TopFieldCollector
Scorer scorer;
- public MultiComparatorScoringMaxScoreCollector(FieldValueHitQueue queue,
+ public MultiComparatorScoringMaxScoreCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
// Must set maxScore to NEG_INF, or otherwise Math.max always returns NaN.
@@ -615,7 +615,7 @@ public abstract class TopFieldCollector
private final static class OutOfOrderMultiComparatorScoringMaxScoreCollector
extends MultiComparatorScoringMaxScoreCollector {
- public OutOfOrderMultiComparatorScoringMaxScoreCollector(FieldValueHitQueue queue,
+ public OutOfOrderMultiComparatorScoringMaxScoreCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
}
@@ -688,7 +688,7 @@ public abstract class TopFieldCollector
Scorer scorer;
- public MultiComparatorScoringNoMaxScoreCollector(FieldValueHitQueue queue,
+ public MultiComparatorScoringNoMaxScoreCollector(FieldValueHitQueue<Entry> queue,
int numHits, boolean fillFields) throws IOException {
super(queue, numHits, fillFields);
}
@@ -767,7 +767,7 @@ public abstract class TopFieldCollector
extends MultiComparatorScoringNoMaxScoreCollector {
public OutOfOrderMultiComparatorScoringNoMaxScoreCollector(
- FieldValueHitQueue queue, int numHits, boolean fillFields)
+ FieldValueHitQueue<Entry> queue, int numHits, boolean fillFields)
throws IOException {
super(queue, numHits, fillFields);
}
@@ -913,7 +913,7 @@ public abstract class TopFieldCollector
throw new IllegalArgumentException("numHits must be > 0; please use TotalHitCountCollector if you just need the total hit count");
}
- FieldValueHitQueue queue = FieldValueHitQueue.create(sort.fields, numHits);
+ FieldValueHitQueue<Entry> queue = FieldValueHitQueue.create(sort.fields, numHits);
if (queue.getComparators().length == 1) {
if (docsScoredInOrder) {
if (trackMaxScore) {
@@ -968,7 +968,7 @@ public abstract class TopFieldCollector
protected void populateResults(ScoreDoc[] results, int howMany) {
if (fillFields) {
// avoid casting if unnecessary.
- FieldValueHitQueue queue = (FieldValueHitQueue) pq;
+ FieldValueHitQueue<Entry> queue = (FieldValueHitQueue<Entry>) pq;
for (int i = howMany - 1; i >= 0; i--) {
results[i] = queue.fillFields(queue.pop());
}
@@ -989,12 +989,11 @@ public abstract class TopFieldCollector
}
// If this is a maxScoring tracking collector and there were no results,
- return new TopFieldDocs(totalHits, results, ((FieldValueHitQueue) pq).getFields(), maxScore);
+ return new TopFieldDocs(totalHits, results, ((FieldValueHitQueue<Entry>) pq).getFields(), maxScore);
}
@Override
public boolean acceptsDocsOutOfOrder() {
return false;
}
-
}
Modified: lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/ArrayUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/ArrayUtil.java?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/ArrayUtil.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/util/ArrayUtil.java Tue Jun 28 22:33:43 2011
@@ -386,6 +386,56 @@ public final class ArrayUtil {
return array;
}
+ public static int[][] grow(int[][] array, int minSize) {
+ if (array.length < minSize) {
+ int[][] newArray = new int[oversize(minSize, RamUsageEstimator.NUM_BYTES_OBJECT_REF)][];
+ System.arraycopy(array, 0, newArray, 0, array.length);
+ return newArray;
+ } else {
+ return array;
+ }
+ }
+
+ public static int[][] grow(int[][] array) {
+ return grow(array, 1 + array.length);
+ }
+
+ public static int[][] shrink(int[][] array, int targetSize) {
+ final int newSize = getShrinkSize(array.length, targetSize, RamUsageEstimator.NUM_BYTES_OBJECT_REF);
+ if (newSize != array.length) {
+ int[][] newArray = new int[newSize][];
+ System.arraycopy(array, 0, newArray, 0, newSize);
+ return newArray;
+ } else {
+ return array;
+ }
+ }
+
+ public static float[][] grow(float[][] array, int minSize) {
+ if (array.length < minSize) {
+ float[][] newArray = new float[oversize(minSize, RamUsageEstimator.NUM_BYTES_OBJECT_REF)][];
+ System.arraycopy(array, 0, newArray, 0, array.length);
+ return newArray;
+ } else {
+ return array;
+ }
+ }
+
+ public static float[][] grow(float[][] array) {
+ return grow(array, 1 + array.length);
+ }
+
+ public static float[][] shrink(float[][] array, int targetSize) {
+ final int newSize = getShrinkSize(array.length, targetSize, RamUsageEstimator.NUM_BYTES_OBJECT_REF);
+ if (newSize != array.length) {
+ float[][] newArray = new float[newSize][];
+ System.arraycopy(array, 0, newArray, 0, newSize);
+ return newArray;
+ } else {
+ return array;
+ }
+ }
+
/**
* Returns hash of chars in range start (inclusive) to
* end (inclusive)
@@ -583,6 +633,7 @@ public final class ArrayUtil {
*/
public static <T> void mergeSort(T[] a, int fromIndex, int toIndex, Comparator<? super T> comp) {
if (toIndex-fromIndex <= 1) return;
+ //System.out.println("SORT: " + (toIndex-fromIndex));
getSorter(a, comp).mergeSort(fromIndex, toIndex-1);
}
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/contributions.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/contributions.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/contributions.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/contributions.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Contributions
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
@@ -271,7 +274,7 @@ document.write("Last Published: " + docu
<a href="#PDFTextStream -- PDF text and metadata extraction">PDFTextStream -- PDF text and metadata extraction</a>
</li>
<li>
-<a href="#PJ Classic & PJ Professional - PDF Document Conversion">PJ Classic & PJ Professional - PDF Document Conversion</a>
+<a href="#PJ Classic & PJ Professional - PDF Document Conversion">PJ Classic & PJ Professional - PDF Document Conversion</a>
</li>
</ul>
</li>
@@ -399,7 +402,7 @@ document.write("Last Published: " + docu
URL
</th>
<td>
- <a href="http://marc.theaimsgroup.com/?l=lucene-dev&m=100723333506246&w=2">
+ <a href="http://marc.theaimsgroup.com/?l=lucene-dev&m=100723333506246&w=2">
http://marc.theaimsgroup.com/?l=lucene-dev&m=100723333506246&w=2
</a>
</td>
@@ -534,7 +537,7 @@ document.write("Last Published: " + docu
</tr>
</table>
-<a name="N10124"></a><a name="PJ Classic & PJ Professional - PDF Document Conversion"></a>
+<a name="N10124"></a><a name="PJ Classic & PJ Professional - PDF Document Conversion"></a>
<h3 class="boxed">PJ Classic & PJ Professional - PDF Document Conversion</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Building and Installing the Basic Demo
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo2.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo2.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo2.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/demo2.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Basic Demo Sources Walk-through
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/fileformats.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/fileformats.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/fileformats.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/fileformats.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Index File Formats
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/gettingstarted.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/gettingstarted.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/gettingstarted.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/gettingstarted.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Getting Started Guide
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/index.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/index.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/index.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/index.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>Lucene Java Documentation</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -160,6 +160,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/linkmap.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/linkmap.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/linkmap.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/linkmap.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>Site Linkmap Table of Contents</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -160,6 +160,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
@@ -330,13 +333,13 @@ document.write("Last Published: " + docu
<a href="api/contrib-benchmark/index.html">Benchmark</a> ___________________ <em>javadoc-contrib-benchmark</em>
</li>
</ul>
-
+
<ul>
<li>
<a href="api/contrib-demo/index.html">Demo</a> ___________________ <em>javadoc-contrib-demo</em>
</li>
</ul>
-
+
<ul>
<li>
<a href="api/contrib-grouping/index.html">Grouping</a> ___________________ <em>javadoc-contrib-grouping</em>
@@ -363,6 +366,12 @@ document.write("Last Published: " + docu
<ul>
<li>
+<a href="api/contrib-join/index.html">Join</a> ___________________ <em>javadoc-contrib-join</em>
+</li>
+</ul>
+
+<ul>
+<li>
<a href="api/contrib-memory/index.html">Memory</a> ___________________ <em>javadoc-contrib-memory</em>
</li>
</ul>
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/lucene-contrib/index.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/lucene-contrib/index.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/lucene-contrib/index.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/lucene-contrib/index.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Lucene Contrib
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="../api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="../api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="../api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
@@ -266,6 +269,9 @@ document.write("Last Published: " + docu
<a href="#instantiated">instantiated</a>
</li>
<li>
+<a href="#join">join</a>
+</li>
+<li>
<a href="#memory">memory</a>
</li>
<li>
@@ -380,47 +386,52 @@ document.write("Last Published: " + docu
<p>RAM-based index that enables much faster searching than RAMDirectory in certain situations.</p>
<p>See <a href="../api/contrib-instantiated/index.html">instantiated javadoc</a>
</p>
-<a name="N100A2"></a><a name="memory"></a>
+<a name="N100A2"></a><a name="join"></a>
+<h3 class="boxed">join</h3>
+<p>Enables joining of parent and child documents when indexed as a doc block</p>
+<p>See <a href="../api/contrib-join/index.html">join javadoc</a>
+</p>
+<a name="N100B1"></a><a name="memory"></a>
<h3 class="boxed">memory</h3>
<p>High-performance single-document main memory index.</p>
<p>See <a href="../api/contrib-memory/index.html">memory javadoc</a>
</p>
-<a name="N100B1"></a><a name="misc"></a>
+<a name="N100C0"></a><a name="misc"></a>
<h3 class="boxed">misc</h3>
<p>A variety of miscellaneous files, including QueryParsers, and other alternate Lucene class implementations and tools.</p>
<p>See <a href="../api/contrib-misc/index.html">misc javadoc</a>
</p>
-<a name="N100C0"></a><a name="queryparser"></a>
+<a name="N100CF"></a><a name="queryparser"></a>
<h3 class="boxed">queryparser</h3>
<p>A new Lucene query parser implementation, which matches the syntax of the core QueryParser but offers a more modular architecture to enable customization.</p>
<p>See <a href="../api/contrib-queryparser/index.html">queryparser javadoc</a>
</p>
-<a name="N100CF"></a><a name="queries"></a>
+<a name="N100DE"></a><a name="queries"></a>
<h3 class="boxed">queries</h3>
<p>Additional queries for Lucene.</p>
<p>See <a href="../api/contrib-queries/index.html">queries javadoc</a>
</p>
-<a name="N100DE"></a><a name="remote"></a>
+<a name="N100ED"></a><a name="remote"></a>
<h3 class="boxed">remote</h3>
<p>Classes to help use Lucene with RMI.</p>
<p>See <a href="../api/contrib-remote/index.html">remote javadoc</a>
</p>
-<a name="N100ED"></a><a name="spatial"></a>
+<a name="N100FC"></a><a name="spatial"></a>
<h3 class="boxed">spatial</h3>
<p>Classes to help with efficient distance based sorting.</p>
<p>See <a href="../api/contrib-spatial/index.html">spatial javadoc</a>
</p>
-<a name="N100FC"></a><a name="spellchecker"></a>
+<a name="N1010B"></a><a name="spellchecker"></a>
<h3 class="boxed">spellchecker</h3>
<p>Provides tools for spellchecking and suggestions with Lucene.</p>
<p>See <a href="../api/contrib-spellchecker/index.html">spellchecker javadoc</a>
</p>
-<a name="N1010B"></a><a name="wordnet"></a>
+<a name="N1011A"></a><a name="wordnet"></a>
<h3 class="boxed">wordnet</h3>
<p>Tools to help utilize wordnet synonyms with Lucene</p>
<p>See <a href="../api/contrib-wordnet/index.html">wordnet javadoc</a>
</p>
-<a name="N1011A"></a><a name="xml-query-parser"></a>
+<a name="N10129"></a><a name="xml-query-parser"></a>
<h3 class="boxed">xml-query-parser</h3>
<p>A QueryParser that can read queries written in an XML format.</p>
<p>See <a href="../api/contrib-wordnet/index.html">xml-query-parser javadoc</a>
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/queryparsersyntax.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/queryparsersyntax.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/queryparsersyntax.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/queryparsersyntax.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Query Parser Syntax
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/scoring.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/scoring.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/scoring.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/scoring.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Scoring
@@ -162,6 +162,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/build/site/systemrequirements.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/build/site/systemrequirements.html?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/build/site/systemrequirements.html (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/build/site/systemrequirements.html Tue Jun 28 22:33:43 2011
@@ -3,7 +3,7 @@
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
-<meta name="Forrest-version" content="0.9">
+<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="lucene">
<title>Apache Lucene - System Requirements</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
@@ -160,6 +160,9 @@ document.write("Last Published: " + docu
<a href="api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
+<a href="api/contrib-join/index.html">Join</a>
+</div>
+<div class="menuitem">
<a href="api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
Modified: lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/lucene-contrib/index.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/lucene-contrib/index.xml?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/lucene-contrib/index.xml (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/lucene-contrib/index.xml Tue Jun 28 22:33:43 2011
@@ -87,6 +87,11 @@
<p>See <a href="../api/contrib-instantiated/index.html">instantiated javadoc</a></p>
</section>
+ <section id="join"><title>join</title>
+ <p>Enables joining of parent and child documents when indexed as a doc block</p>
+ <p>See <a href="../api/contrib-join/index.html">join javadoc</a></p>
+ </section>
+
<section id="memory"><title>memory</title>
<p>High-performance single-document main memory index.</p>
<p>See <a href="../api/contrib-memory/index.html">memory javadoc</a></p>
Modified: lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/site.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/site.xml?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/site.xml (original)
+++ lucene/dev/branches/branch_3x/lucene/src/site/src/documentation/content/xdocs/site.xml Tue Jun 28 22:33:43 2011
@@ -56,11 +56,12 @@ See http://forrest.apache.org/docs/linki
<javadoc-contrib-smartcn label="Smart Chinese Analyzer" href="ext:javadocs-contrib-smartcn"/>
<javadoc-contrib-stempel label="Stempel Polish Analyzer" href="ext:javadocs-contrib-stempel"/>
<javadoc-contrib-benchmark label="Benchmark" href="ext:javadocs-contrib-benchmark"/>
- <javadoc-contrib-demo label="Demo" href="ext:javadocs-contrib-demo"/>
- <javadoc-contrib-grouping label="Grouping" href="ext:javadocs-contrib-grouping"/>
+ <javadoc-contrib-demo label="Demo" href="ext:javadocs-contrib-demo"/>
+ <javadoc-contrib-grouping label="Grouping" href="ext:javadocs-contrib-grouping"/>
<javadoc-contrib-highlighter label="Highlighter" href="ext:javadocs-contrib-highlighter"/>
<javadoc-contrib-icu label="ICU" href="ext:javadocs-contrib-icu"/>
<javadoc-contrib-instantiated label="Instantiated" href="ext:javadocs-contrib-instantiated"/>
+ <javadoc-contrib-join label="Join" href="ext:javadocs-contrib-join"/>
<javadoc-contrib-memory label="Memory" href="ext:javadocs-contrib-memory"/>
<javadoc-contrib-misc label="Miscellaneous" href="ext:javadocs-contrib-misc"/>
<javadoc-contrib-queries label="Queries" href="ext:javadocs-contrib-queries"/>
@@ -104,11 +105,12 @@ See http://forrest.apache.org/docs/linki
<javadocs-contrib-smartcn href="api/contrib-smartcn/index.html"/>
<javadocs-contrib-stempel href="api/contrib-stempel/index.html"/>
<javadocs-contrib-benchmark href="api/contrib-benchmark/index.html"/>
- <javadocs-contrib-demo href="api/contrib-demo/index.html"/>
- <javadocs-contrib-grouping href="api/contrib-grouping/index.html"/>
+ <javadocs-contrib-demo href="api/contrib-demo/index.html"/>
+ <javadocs-contrib-grouping href="api/contrib-grouping/index.html"/>
<javadocs-contrib-highlighter href="api/contrib-highlighter/index.html"/>
- <javadocs-contrib-icu href="api/contrib-icu/index.html"/>
+ <javadocs-contrib-icu href="api/contrib-icu/index.html"/>
<javadocs-contrib-instantiated href="api/contrib-instantiated/index.html"/>
+ <javadocs-contrib-join href="api/contrib-join/index.html"/>
<javadocs-contrib-memory href="api/contrib-memory/index.html"/>
<javadocs-contrib-misc href="api/contrib-misc/index.html"/>
<javadocs-contrib-queries href="api/contrib-queries/index.html"/>
Modified: lucene/dev/branches/branch_3x/lucene/src/test-framework/org/apache/lucene/util/_TestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/test-framework/org/apache/lucene/util/_TestUtil.java?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/test-framework/org/apache/lucene/util/_TestUtil.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/test-framework/org/apache/lucene/util/_TestUtil.java Tue Jun 28 22:33:43 2011
@@ -35,6 +35,9 @@ import java.util.zip.ZipFile;
import org.junit.Assert;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.CheckIndex;
import org.apache.lucene.index.ConcurrentMergeScheduler;
import org.apache.lucene.index.IndexWriter;
@@ -440,4 +443,25 @@ public class _TestUtil {
}
}
}
+
+ // NOTE: this is likely buggy, and cannot clone fields
+ // with tokenStreamValues, etc. Use at your own risk!!
+
+ // TODO: is there a pre-existing way to do this!!!
+ public static Document cloneDocument(Document doc1) {
+ final Document doc2 = new Document();
+ for(Fieldable f : doc1.getFields()) {
+ Field field1 = (Field) f;
+
+ Field field2 = new Field(field1.name(),
+ field1.stringValue(),
+ field1.isStored() ? Field.Store.YES : Field.Store.NO,
+ field1.isIndexed() ? (field1.isTokenized() ? Field.Index.ANALYZED : Field.Index.NOT_ANALYZED) : Field.Index.NO);
+ field2.setOmitNorms(field1.getOmitNorms());
+ field2.setOmitTermFreqAndPositions(field1.getOmitTermFreqAndPositions());
+ doc2.add(field2);
+ }
+
+ return doc2;
+ }
}
Modified: lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java?rev=1140874&r1=1140873&r2=1140874&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java (original)
+++ lucene/dev/branches/branch_3x/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java Tue Jun 28 22:33:43 2011
@@ -33,7 +33,6 @@ import java.util.concurrent.atomic.Atomi
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.Query;
@@ -65,28 +64,6 @@ public class TestNRTThreads extends Luce
}
}
- // TODO: is there a pre-existing way to do this!!!
- private Document cloneDoc(Document doc1) {
- final Document doc2 = new Document();
- for(Fieldable f : doc1.getFields()) {
- Field field1 = (Field) f;
-
- Field field2 = new Field(field1.name(),
- field1.stringValue(),
- field1.isStored() ? Field.Store.YES : Field.Store.NO,
- field1.isIndexed() ? (field1.isTokenized() ? Field.Index.ANALYZED : Field.Index.NOT_ANALYZED) : Field.Index.NO);
- if (field1.getOmitNorms()) {
- field2.setOmitNorms(true);
- }
- if (field1.getOmitTermFreqAndPositions()) {
- field2.setOmitTermFreqAndPositions(true);
- }
- doc2.add(field2);
- }
-
- return doc2;
- }
-
@Test
public void testNRTThreads() throws Exception {
@@ -192,7 +169,7 @@ public class TestNRTThreads extends Luce
allSubDocs.add(subDocs);
doc.add(packIDField);
- docsList.add(cloneDoc(doc));
+ docsList.add(_TestUtil.cloneDocument(doc));
docIDs.add(doc.get("docid"));
final int maxDocCount = _TestUtil.nextInt(random, 1, 10);
@@ -201,7 +178,7 @@ public class TestNRTThreads extends Luce
if (doc == null) {
break;
}
- docsList.add(cloneDoc(doc));
+ docsList.add(_TestUtil.cloneDocument(doc));
docIDs.add(doc.get("docid"));
}
addCount.addAndGet(docsList.size());