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 2013/02/12 22:47:53 UTC
svn commit: r1445403 - in /lucene/dev/branches/LUCENE-2878/lucene/core/src:
java/org/apache/lucene/search/ java/org/apache/lucene/search/intervals/
test/org/apache/lucene/search/intervals/
Author: romseygeek
Date: Tue Feb 12 21:47:53 2013
New Revision: 1445403
URL: http://svn.apache.org/r1445403
Log:
Add PositionFilteredScorer and OrderedNearQuery
Added:
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionFilteredScorer.java (with props)
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ScorerFilterQuery.java (with props)
Modified:
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionQueue.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/Interval.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/OrderedNearQuery.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBrouwerianQuery.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java
lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestNestedIntervalFilterQueries.java
Added: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionFilteredScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionFilteredScorer.java?rev=1445403&view=auto
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionFilteredScorer.java (added)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionFilteredScorer.java Tue Feb 12 21:47:53 2013
@@ -0,0 +1,126 @@
+package org.apache.lucene.search;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.lucene.search.intervals.Interval;
+
+import java.io.IOException;
+
+public abstract class PositionFilteredScorer extends Scorer {
+
+ protected final Scorer[] subScorers;
+ protected final Scorer child;
+ protected final Interval current = new Interval();
+ protected int matchDistance;
+
+ private boolean buffered;
+
+ public PositionFilteredScorer(Scorer filteredScorer) {
+ super(filteredScorer.getWeight());
+ child = filteredScorer;
+ subScorers = new Scorer[filteredScorer.getChildren().size()];
+ int i = 0;
+ for (ChildScorer subScorer : filteredScorer.getChildren()) {
+ subScorers[i++] = subScorer.child;
+ }
+ }
+
+ @Override
+ public float score() throws IOException {
+ return child.score();
+ }
+
+ @Override
+ public int docID() {
+ return child.docID();
+ }
+
+ @Override
+ public int nextDoc() throws IOException {
+ while (child.nextDoc() != NO_MORE_DOCS) {
+ reset(child.docID());
+ if (nextPosition() != NO_MORE_POSITIONS) {
+ buffered = true;
+ return child.docID();
+ }
+ }
+ return NO_MORE_DOCS;
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ if (child.advance(target) == NO_MORE_DOCS)
+ return NO_MORE_DOCS;
+ do {
+ reset(child.docID());
+ if (nextPosition() != NO_MORE_POSITIONS) {
+ buffered = true;
+ return child.docID();
+ }
+ } while (child.nextDoc() != NO_MORE_DOCS);
+ return NO_MORE_DOCS;
+ }
+
+ @Override
+ public int nextPosition() throws IOException {
+ if (buffered) {
+ buffered = false;
+ return current.begin;
+ }
+ while (doNextPosition() != NO_MORE_POSITIONS) {
+ if (passesFilter()) {
+ return current.begin;
+ }
+ }
+ return NO_MORE_POSITIONS;
+ }
+
+ protected abstract int doNextPosition() throws IOException;
+
+ protected boolean passesFilter() {
+ return true;
+ }
+
+ protected abstract void reset(int doc) throws IOException;
+
+ public int getMatchDistance() {
+ return matchDistance;
+ }
+
+ @Override
+ public int startPosition() throws IOException {
+ return current.begin;
+ }
+
+ @Override
+ public int endPosition() throws IOException {
+ return current.end;
+ }
+
+ @Override
+ public int startOffset() throws IOException {
+ return current.offsetBegin;
+ }
+
+ @Override
+ public int endOffset() throws IOException {
+ return current.offsetEnd;
+ }
+
+ // nocommit Payloads - need to add these to Interval?
+}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionQueue.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionQueue.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/PositionQueue.java Tue Feb 12 21:47:53 2013
@@ -35,7 +35,7 @@ public class PositionQueue extends Prior
public int nextPosition() throws IOException {
if (docsEnum.docID() == DocsEnum.NO_MORE_DOCS || docsEnum.docID() != docId
|| docsEnum.nextPosition() == DocsEnum.NO_MORE_POSITIONS)
- interval.update(Interval.EXHAUSTED_INTERVAL);
+ interval.setMaximum();
else
interval.update(this.docsEnum);
return interval.begin;
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ReqExclScorer.java Tue Feb 12 21:47:53 2013
@@ -113,6 +113,31 @@ class ReqExclScorer extends Scorer {
}
@Override
+ public int nextPosition() throws IOException {
+ return reqScorer.nextPosition();
+ }
+
+ @Override
+ public int startPosition() throws IOException {
+ return reqScorer.startPosition();
+ }
+
+ @Override
+ public int endPosition() throws IOException {
+ return reqScorer.endPosition();
+ }
+
+ @Override
+ public int startOffset() throws IOException {
+ return reqScorer.startOffset();
+ }
+
+ @Override
+ public int endOffset() throws IOException {
+ return reqScorer.endOffset();
+ }
+
+ @Override
public Collection<ChildScorer> getChildren() {
return Collections.singleton(new ChildScorer(reqScorer, "FILTERED"));
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java Tue Feb 12 21:47:53 2013
@@ -87,7 +87,9 @@ public abstract class Scorer extends Doc
*
* @lucene.experimental
*/
- public abstract IntervalIterator intervals(boolean collectIntervals) throws IOException;
+ public IntervalIterator intervals(boolean collectIntervals) throws IOException {
+ return null;
+ };
/**
* Get the IntervalIterators from a list of scorers
Added: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ScorerFilterQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ScorerFilterQuery.java?rev=1445403&view=auto
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ScorerFilterQuery.java (added)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/ScorerFilterQuery.java Tue Feb 12 21:47:53 2013
@@ -0,0 +1,148 @@
+package org.apache.lucene.search;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.index.TermContext;
+import org.apache.lucene.search.similarities.Similarity;
+import org.apache.lucene.util.Bits;
+
+import java.io.IOException;
+import java.util.TreeSet;
+
+public class ScorerFilterQuery extends Query {
+
+ protected final Query innerQuery;
+ protected final ScorerFilterFactory scorerFilterFactory;
+
+ public ScorerFilterQuery(Query innerQuery, ScorerFilterFactory scorerFilterFactory) {
+ this.innerQuery = innerQuery;
+ this.scorerFilterFactory = scorerFilterFactory;
+ }
+
+ protected static BooleanQuery buildBooleanQuery(Query... queries) {
+ BooleanQuery bq = new BooleanQuery();
+ for (Query q : queries) {
+ bq.add(q, BooleanClause.Occur.MUST);
+ }
+ return bq;
+ }
+
+ @Override
+ public Query rewrite(IndexReader reader) throws IOException {
+ Query rewritten = innerQuery.rewrite(reader);
+ if (rewritten != innerQuery) {
+ return new ScorerFilterQuery(rewritten, scorerFilterFactory);
+ }
+ return this;
+ }
+
+ @Override
+ public Weight createWeight(IndexSearcher searcher) throws IOException {
+ return new ScorerFilterWeight(innerQuery.createWeight(searcher), searcher);
+ }
+
+ @Override
+ public String toString(String field) {
+ return scorerFilterFactory.getName() + "[" + innerQuery.toString() + "]";
+ }
+
+ public class ScorerFilterWeight extends Weight {
+
+ private final Weight innerWeight;
+ private final Similarity similarity;
+ private final Similarity.SimWeight stats;
+
+ public ScorerFilterWeight(Weight innerWeight, IndexSearcher searcher) throws IOException {
+ this.innerWeight = innerWeight;
+ this.similarity = searcher.getSimilarity();
+ this.stats = getSimWeight(innerWeight.getQuery(), searcher);
+ }
+
+ private Similarity.SimWeight getSimWeight(Query query, IndexSearcher searcher) throws IOException {
+ TreeSet<Term> terms = new TreeSet<Term>();
+ query.extractTerms(terms);
+ if (terms.size() == 0)
+ return null;
+ int i = 0;
+ TermStatistics[] termStats = new TermStatistics[terms.size()];
+ for (Term term : terms) {
+ TermContext state = TermContext.build(searcher.getTopReaderContext(), term, true);
+ termStats[i] = searcher.termStatistics(term, state);
+ i++;
+ }
+ final String field = terms.first().field(); // nocommit - should we be checking all filtered terms
+ // are on the same field?
+ return similarity.computeWeight(query.getBoost(), searcher.collectionStatistics(field), termStats);
+ }
+
+ @Override
+ public Explanation explain(AtomicReaderContext context, int doc) throws IOException {
+ Scorer scorer = scorer(context, true, false, PostingFeatures.POSITIONS,
+ context.reader().getLiveDocs());
+ if (scorer != null) {
+ int newDoc = scorer.advance(doc);
+ if (newDoc == doc) {
+ float freq = scorer.freq();
+ Similarity.SloppySimScorer docScorer = similarity.sloppySimScorer(stats, context);
+ ComplexExplanation result = new ComplexExplanation();
+ result.setDescription("weight("+getQuery()+" in "+doc+") [" + similarity.getClass().getSimpleName() + "], result of:");
+ Explanation scoreExplanation = docScorer.explain(doc, new Explanation(freq, "phraseFreq=" + freq));
+ result.addDetail(scoreExplanation);
+ result.setValue(scoreExplanation.getValue());
+ result.setMatch(true);
+ return result;
+ }
+ }
+ return new ComplexExplanation(false, 0.0f,
+ "No matching term within position filter");
+ }
+
+ @Override
+ public Query getQuery() {
+ return ScorerFilterQuery.this;
+ }
+
+ @Override
+ public float getValueForNormalization() throws IOException {
+ return stats == null ? 1.0f : stats.getValueForNormalization();
+ }
+
+ @Override
+ public void normalize(float norm, float topLevelBoost) {
+ if (stats != null)
+ stats.normalize(norm, topLevelBoost);
+ }
+
+ @Override
+ public Scorer scorer(AtomicReaderContext context, boolean scoreDocsInOrder, boolean topScorer,
+ PostingFeatures flags, Bits acceptDocs) throws IOException {
+ return scorerFilterFactory.scorer(innerWeight.scorer(context, scoreDocsInOrder, topScorer, flags, acceptDocs));
+ }
+ }
+
+ public static interface ScorerFilterFactory {
+
+ public Scorer scorer(Scorer filteredScorer);
+
+ public String getName();
+
+ }
+}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/Interval.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/Interval.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/Interval.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/Interval.java Tue Feb 12 21:47:53 2013
@@ -40,10 +40,7 @@ public class Interval implements Cloneab
/** An interval that will always compare as less than any other interval */
public static final Interval INFINITE_INTERVAL = new Interval();
- /** An interval that will always compare as more than any other interval */
- public static final Interval EXHAUSTED_INTERVAL = new Interval(Integer.MAX_VALUE, Integer.MAX_VALUE, -1, -1);
-
- /**
+ /**
* Constructs a new Interval
* @param begin the start position
* @param end the end position
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/OrderedNearQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/OrderedNearQuery.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/OrderedNearQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/java/org/apache/lucene/search/intervals/OrderedNearQuery.java Tue Feb 12 21:47:53 2013
@@ -17,9 +17,12 @@ package org.apache.lucene.search.interva
* limitations under the License.
*/
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.PositionFilteredScorer;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.Scorer;
+import org.apache.lucene.search.ScorerFilterQuery;
+
+import java.io.IOException;
/**
* A query that matches if a set of subqueries also match, and are within
@@ -35,17 +38,7 @@ import org.apache.lucene.search.Query;
* @lucene.experimental
*/
-public class OrderedNearQuery extends IntervalFilterQuery {
-
- /**
- * Constructs an OrderedNearQuery
- * @param slop the maximum distance between the subquery matches
- * @param collectLeaves false if only the master interval should be collected
- * @param subqueries the subqueries to match.
- */
- public OrderedNearQuery(int slop, boolean collectLeaves, Query... subqueries) {
- super(buildBooleanQuery(subqueries), new WithinOrderedFilter(slop, collectLeaves));
- }
+public class OrderedNearQuery extends ScorerFilterQuery {
/**
* Constructs an OrderedNearQuery
@@ -53,15 +46,102 @@ public class OrderedNearQuery extends In
* @param subqueries the subqueries to match.
*/
public OrderedNearQuery(int slop, Query... subqueries) {
- super(buildBooleanQuery(subqueries), new WithinOrderedFilter(slop, true));
+ super(buildBooleanQuery(subqueries), new OrderedNearScorerFactory(slop));
}
- private static BooleanQuery buildBooleanQuery(Query... queries) {
- BooleanQuery bq = new BooleanQuery();
- for (Query q : queries) {
- bq.add(q, BooleanClause.Occur.MUST);
+ private static class OrderedNearScorerFactory implements ScorerFilterFactory {
+
+ private final int slop;
+
+ public OrderedNearScorerFactory(int slop) {
+ this.slop = slop;
+ }
+
+ @Override
+ public Scorer scorer(Scorer filteredScorer) {
+ return new OrderedNearScorer(filteredScorer, slop);
+ }
+
+ @Override
+ public String getName() {
+ return "OrderedNear/" + slop;
}
- return bq;
}
+ private static class OrderedNearScorer extends PositionFilteredScorer {
+
+ private final int lastiter;
+ private final int slop;
+
+ private int index = 1;
+ private Interval[] intervals;
+
+ public OrderedNearScorer(Scorer filteredScorer, int slop) {
+ super(filteredScorer);
+ intervals = new Interval[subScorers.length];
+ for (int i = 0; i < subScorers.length; i++) {
+ intervals[i] = new Interval();
+ }
+ lastiter = intervals.length - 1;
+ this.slop = slop;
+ }
+
+ @Override
+ protected boolean passesFilter() {
+ return matchDistance <= slop;
+ }
+
+ @Override
+ public int freq() throws IOException {
+ return 1; // nocommit
+ }
+
+ @Override
+ protected void reset(int doc) throws IOException {
+ for (int i = 0; i < subScorers.length; i++) {
+ assert subScorers[i].docID() == doc;
+ intervals[i].update(Interval.INFINITE_INTERVAL);
+ }
+ if (subScorers[0].nextPosition() == NO_MORE_POSITIONS)
+ intervals[0].setMaximum();
+ else
+ intervals[0].update(subScorers[0]);
+ index = 1;
+ }
+
+ @Override
+ protected int doNextPosition() throws IOException {
+ if (intervals[0].begin == NO_MORE_POSITIONS)
+ return NO_MORE_POSITIONS;
+ current.setMaximum();
+ int b = Integer.MAX_VALUE;
+ while (true) {
+ while (true) {
+ final Interval previous = intervals[index - 1];
+ if (previous.end >= b) {
+ return current.begin;
+ }
+ if (index == intervals.length || intervals[index].begin > previous.end)
+ break;
+ Interval scratch = intervals[index];
+ do {
+ if (scratch.end >= b || subScorers[index].nextPosition() == NO_MORE_POSITIONS)
+ return current.begin;
+ intervals[index].update(subScorers[index]);
+ scratch = intervals[index];
+ } while (scratch.begin <= previous.end);
+ index++;
+ }
+ current.update(intervals[0], intervals[lastiter]);
+ matchDistance = (intervals[lastiter].begin - lastiter) - intervals[0].end;
+ b = intervals[lastiter].begin;
+ index = 1;
+ if (subScorers[0].nextPosition() == NO_MORE_POSITIONS) {
+ intervals[0].setMaximum();
+ return current.begin;
+ }
+ intervals[0].update(subScorers[0]);
+ }
+ }
+ }
}
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBasicIntervals.java Tue Feb 12 21:47:53 2013
@@ -64,6 +64,24 @@ public class TestBasicIntervals extends
});
}
+ public void testExclusion() throws IOException {
+ Query q = makeBooleanQuery(makeBooleanClause("v2", BooleanClause.Occur.MUST),
+ makeBooleanClause("v3", BooleanClause.Occur.MUST_NOT));
+ checkIntervals(q, searcher, new int[][]{
+ { 14, 1, 1, 2, 2 }
+ });
+ }
+
+ public void testOptExclusion() throws IOException {
+ Query q = makeBooleanQuery(makeBooleanClause("w2", BooleanClause.Occur.SHOULD),
+ makeBooleanClause("w3", BooleanClause.Occur.SHOULD),
+ makeBooleanClause("xx", BooleanClause.Occur.MUST_NOT));
+ checkIntervals(q, searcher, new int[][]{
+ { 0, 1, 1, 2, 2 },
+ { 1, 1, 1, 2, 2, 3, 3 }
+ });
+ }
+
public void testNestedConjunctions() throws IOException {
Query q = makeAndQuery(makeTermQuery("v2"), makeOrQuery(makeTermQuery("v3"), makeTermQuery("v4")));
checkIntervals(q, searcher, new int[][]{
@@ -107,17 +125,15 @@ public class TestBasicIntervals extends
});
}
- /*
-
public void testNearOrdered01() throws Exception {
- Query q = new OrderedNearQuery(0, false, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(0, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 0, 0, 2 }
});
}
public void testNearOrdered02() throws Exception {
- Query q = new OrderedNearQuery(1, false, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(1, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 0, 0, 2 },
{ 1, 0, 3 }
@@ -125,7 +141,7 @@ public class TestBasicIntervals extends
}
public void testNearOrdered03() throws Exception {
- Query q = new OrderedNearQuery(2, false, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(2, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 0, 0, 2 },
{ 1, 0, 3 },
@@ -134,7 +150,7 @@ public class TestBasicIntervals extends
}
public void testNearOrdered04() throws Exception {
- Query q = new OrderedNearQuery(3, false, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(3, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 0, 0, 2 },
{ 1, 0, 3 },
@@ -144,7 +160,7 @@ public class TestBasicIntervals extends
}
public void testNearOrdered05() throws Exception {
- Query q = new OrderedNearQuery(4, false, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(4, makeTermQuery("w1"), makeTermQuery("w2"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 0, 0, 2 },
{ 1, 0, 3 },
@@ -154,26 +170,26 @@ public class TestBasicIntervals extends
}
public void testNearOrderedEqual01() throws Exception {
- Query q = new OrderedNearQuery(0, false, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(0, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{});
}
public void testNearOrderedEqual02() throws Exception {
- Query q = new OrderedNearQuery(1, false, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(1, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 1, 0, 3 }
});
}
public void testNearOrderedEqual03() throws Exception {
- Query q = new OrderedNearQuery(2, false, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(2, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 1, 0, 3 }
});
}
public void testNearOrderedEqual04() throws Exception {
- Query q = new OrderedNearQuery(3, false, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
+ Query q = new OrderedNearQuery(3, makeTermQuery("w1"), makeTermQuery("w3"), makeTermQuery("w3"));
checkIntervals(q, searcher, new int[][]{
{ 1, 0, 3 },
{ 3, 0, 5 }
@@ -181,14 +197,14 @@ public class TestBasicIntervals extends
}
public void testNearOrderedEqual11() throws Exception {
- Query q = new OrderedNearQuery(0, false, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
+ Query q = new OrderedNearQuery(0, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
checkIntervals(q, searcher, new int[][]{
{ 4, 0, 2 }
});
}
public void testNearOrderedEqual13() throws Exception {
- Query q = new OrderedNearQuery(1, false, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
+ Query q = new OrderedNearQuery(1, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
checkIntervals(q, searcher, new int[][]{
{ 4, 0, 2 },
{ 5, 0, 3 },
@@ -197,7 +213,7 @@ public class TestBasicIntervals extends
}
public void testNearOrderedEqual14() throws Exception {
- Query q = new OrderedNearQuery(2, false, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
+ Query q = new OrderedNearQuery(2, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
checkIntervals(q, searcher, new int[][]{
{ 4, 0, 2 },
{ 5, 0, 3 },
@@ -207,7 +223,7 @@ public class TestBasicIntervals extends
}
public void testNearOrderedEqual15() throws Exception {
- Query q = new OrderedNearQuery(3, false, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
+ Query q = new OrderedNearQuery(3, makeTermQuery("u2"), makeTermQuery("u2"), makeTermQuery("u1"));
checkIntervals(q, searcher, new int[][]{
{ 4, 0, 2 },
{ 5, 0, 3 },
@@ -217,11 +233,13 @@ public class TestBasicIntervals extends
}
public void testNearOrderedOverlap() throws Exception {
- Query q = new OrderedNearQuery(3, false, makeTermQuery("t1"), makeTermQuery("t2"), makeTermQuery("t3"));
+ Query q = new OrderedNearQuery(3, makeTermQuery("t1"), makeTermQuery("t2"), makeTermQuery("t3"));
checkIntervals(q, searcher, new int[][]{
{ 11, 0, 3, 2, 5 }
});
}
+
+ /*
public void testNearUnordered() throws Exception {
Query q = new UnorderedNearQuery(0, false, makeTermQuery("u1"), makeTermQuery("u2"));
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBrouwerianQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBrouwerianQuery.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBrouwerianQuery.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestBrouwerianQuery.java Tue Feb 12 21:47:53 2013
@@ -47,7 +47,7 @@ public class TestBrouwerianQuery extends
public void testBrouwerianBooleanQuery() throws IOException {
- Query query = new OrderedNearQuery(2, false, makeTermQuery("the"),
+ Query query = new OrderedNearQuery(2, makeTermQuery("the"),
makeTermQuery("quick"), makeTermQuery("jumps"));
Query sub = makeTermQuery("fox");
NonOverlappingQuery q = new NonOverlappingQuery(query, sub);
@@ -59,7 +59,7 @@ public class TestBrouwerianQuery extends
public void testBrouwerianBooleanQueryExcludedDoesNotExist() throws IOException {
- Query query = new OrderedNearQuery(2, false, makeTermQuery("the"),
+ Query query = new OrderedNearQuery(2, makeTermQuery("the"),
makeTermQuery("quick"), makeTermQuery("jumps"));
Query sub = makeTermQuery("blox");
NonOverlappingQuery q = new NonOverlappingQuery(query, sub);
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestConjunctionIntervalIterator.java Tue Feb 12 21:47:53 2013
@@ -61,7 +61,7 @@ public class TestConjunctionIntervalIter
}
public void testConjunctionOrderedQuery() throws IOException {
- Query q = new OrderedNearQuery(0, false, makeTermQuery("pease"),
+ Query q = new OrderedNearQuery(0, makeTermQuery("pease"),
makeTermQuery("porridge"), makeTermQuery("hot!"));
checkIntervals(q, searcher, new int[][]{
{ 0, 0, 2, 31, 33 },
Modified: lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestNestedIntervalFilterQueries.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestNestedIntervalFilterQueries.java?rev=1445403&r1=1445402&r2=1445403&view=diff
==============================================================================
--- lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestNestedIntervalFilterQueries.java (original)
+++ lucene/dev/branches/LUCENE-2878/lucene/core/src/test/org/apache/lucene/search/intervals/TestNestedIntervalFilterQueries.java Tue Feb 12 21:47:53 2013
@@ -57,7 +57,7 @@ public class TestNestedIntervalFilterQue
public void testFilterDisjunctionQuery() throws IOException {
Query near1 = makeTermQuery("w4");
- Query near2 = new OrderedNearQuery(3, false, makeTermQuery("w1"), makeTermQuery("w10"));
+ Query near2 = new OrderedNearQuery(3, makeTermQuery("w1"), makeTermQuery("w10"));
BooleanQuery bq = new BooleanQuery();
bq.add(near1, BooleanClause.Occur.SHOULD);
bq.add(near2, BooleanClause.Occur.SHOULD);
@@ -71,8 +71,8 @@ public class TestNestedIntervalFilterQue
// or(w1 pre/2 w2, w1 pre/3 w10)
public void testOrNearNearQuery() throws IOException {
- Query near1 = new OrderedNearQuery(2, false, makeTermQuery("w1"), makeTermQuery("w2"));
- Query near2 = new OrderedNearQuery(3, false, makeTermQuery("w1"), makeTermQuery("w10"));
+ Query near1 = new OrderedNearQuery(2, makeTermQuery("w1"), makeTermQuery("w2"));
+ Query near2 = new OrderedNearQuery(3, makeTermQuery("w1"), makeTermQuery("w10"));
BooleanQuery bq = new BooleanQuery();
bq.add(near1, BooleanClause.Occur.SHOULD);
bq.add(near2, BooleanClause.Occur.SHOULD);
@@ -99,8 +99,8 @@ public class TestNestedIntervalFilterQue
// (a pre/2 b) pre/6 (c pre/2 d)
public void testNearNearNearQuery() throws IOException {
- Query near1 = new OrderedNearQuery(2, false, makeTermQuery("w1"), makeTermQuery("w4"));
- Query near2 = new OrderedNearQuery(2, false, makeTermQuery("w10"), makeTermQuery("w12"));
+ Query near1 = new OrderedNearQuery(2, makeTermQuery("w1"), makeTermQuery("w4"));
+ Query near2 = new OrderedNearQuery(2, makeTermQuery("w10"), makeTermQuery("w12"));
Query near3 = new OrderedNearQuery(6, near1, near2);
checkIntervals(near3, searcher, new int[][]{
{ 0, 0, 11, 0, 3, 9, 11 }
@@ -108,8 +108,8 @@ public class TestNestedIntervalFilterQue
}
public void testOrNearNearNonExistentQuery() throws IOException {
- Query near1 = new OrderedNearQuery(2, false, makeTermQuery("w1"), makeTermQuery("w12"));
- Query near2 = new OrderedNearQuery(2, false, makeTermQuery("w3"), makeTermQuery("w8"));
+ Query near1 = new OrderedNearQuery(2, makeTermQuery("w1"), makeTermQuery("w12"));
+ Query near2 = new OrderedNearQuery(2, makeTermQuery("w3"), makeTermQuery("w8"));
BooleanQuery bq = new BooleanQuery();
bq.add(near1, BooleanClause.Occur.SHOULD);
bq.add(near2, BooleanClause.Occur.SHOULD);