You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by nk...@apache.org on 2016/02/08 23:36:00 UTC

[25/50] [abbrv] lucene-solr git commit: LUCENE-6929: Fix SpanNotQuery to not ignore the pre/post parameters when rewriting.

LUCENE-6929: Fix SpanNotQuery to not ignore the pre/post parameters when rewriting.


git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_5_4@1724051 13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/a9bfb90a
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/a9bfb90a
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/a9bfb90a

Branch: refs/heads/branch_5_4
Commit: a9bfb90a71e80f8a47eafb4ecf6553b8d77b780d
Parents: 21ccf61
Author: Adrien Grand <jp...@apache.org>
Authored: Mon Jan 11 14:58:38 2016 +0000
Committer: Adrien Grand <jp...@apache.org>
Committed: Mon Jan 11 14:58:38 2016 +0000

----------------------------------------------------------------------
 lucene/CHANGES.txt                              |  3 ++
 .../lucene/search/spans/SpanNotQuery.java       |  3 +-
 .../apache/lucene/search/spans/TestSpans.java   | 43 ++++++++++++++++----
 3 files changed, 40 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a9bfb90a/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index a0bf877..2ee15c9 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -17,6 +17,9 @@ Bug Fixes
 * SOLR-7865: BlendedInfixSuggester was returning too many results
   (Arcadius Ahouansou via Mike McCandless)
 
+* LUCENE-6929: Fix SpanNotQuery rewriting to not drop the pre/post parameters.
+  (Tim Allison via Adrien Grand)
+
 ======================= Lucene 5.4.0 =======================
 
 New Features

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a9bfb90a/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java b/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
index f8f871b..a7a8a40 100644
--- a/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
@@ -200,11 +200,10 @@ public final class SpanNotQuery extends SpanQuery {
     SpanQuery rewrittenInclude = (SpanQuery) include.rewrite(reader);
     SpanQuery rewrittenExclude = (SpanQuery) exclude.rewrite(reader);
     if (rewrittenInclude != include || rewrittenExclude != exclude) {
-      return new SpanNotQuery(rewrittenInclude, rewrittenExclude);
+      return new SpanNotQuery(rewrittenInclude, rewrittenExclude, pre, post);
     }
     return super.rewrite(reader);
   }
-
     /** Returns true iff <code>o</code> is equal to this. */
   @Override
   public boolean equals(Object o) {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a9bfb90a/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java b/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java
index 9529a45..2ad93d9 100644
--- a/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java
+++ b/lucene/core/src/test/org/apache/lucene/search/spans/TestSpans.java
@@ -17,21 +17,26 @@ package org.apache.lucene.search.spans;
  * limitations under the License.
  */
 
+import java.io.IOException;
+import java.util.List;
+
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReaderContext;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.ReaderUtil;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.CheckHits;
 import org.apache.lucene.search.DocIdSetIterator;
+import org.apache.lucene.search.FuzzyQuery;
 import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.PrefixQuery;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Scorer;
 import org.apache.lucene.search.TermQuery;
@@ -40,10 +45,13 @@ import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
-import java.util.List;
-
-import static org.apache.lucene.search.spans.SpanTestUtil.*;
+import static org.apache.lucene.search.spans.SpanTestUtil.assertFinished;
+import static org.apache.lucene.search.spans.SpanTestUtil.assertNext;
+import static org.apache.lucene.search.spans.SpanTestUtil.spanNearOrderedQuery;
+import static org.apache.lucene.search.spans.SpanTestUtil.spanNearUnorderedQuery;
+import static org.apache.lucene.search.spans.SpanTestUtil.spanNotQuery;
+import static org.apache.lucene.search.spans.SpanTestUtil.spanOrQuery;
+import static org.apache.lucene.search.spans.SpanTestUtil.spanTermQuery;
 
 public class TestSpans extends LuceneTestCase {
   private IndexSearcher searcher;
@@ -87,7 +95,10 @@ public class TestSpans extends LuceneTestCase {
     "u2 u1 xx u2",
     "u1 u2 xx u2",
     "t1 t2 t1 t3 t2 t3",
-    "s2 s1 s1 xx xx s2 xx s2 xx s1 xx xx xx xx xx s2 xx"
+    "s2 s1 s1 xx xx s2 xx s2 xx s1 xx xx xx xx xx s2 xx",
+    "r1 s11",
+    "r1 s21"
+
   };
   
   private void checkHits(Query query, int[] results) throws IOException {
@@ -375,7 +386,25 @@ public class TestSpans extends LuceneTestCase {
     reader.close();
     dir.close();
   }
-  
+
+  public void testSpanNotWithMultiterm() throws Exception {
+    SpanQuery q = spanNotQuery(
+        spanTermQuery(field, "r1"),
+        new SpanMultiTermQueryWrapper<>(new PrefixQuery(new Term(field, "s1"))),3,3);
+    checkHits(q,  new int[] {14});
+
+    q = spanNotQuery(
+        spanTermQuery(field, "r1"),
+        new SpanMultiTermQueryWrapper<>(new FuzzyQuery(new Term(field, "s12"), 1, 2)),3,3);
+    checkHits(q,  new int[] {14});
+
+    q = spanNotQuery(
+        new SpanMultiTermQueryWrapper<>(new PrefixQuery(new Term(field, "r"))),
+        spanTermQuery(field, "s21"),3,3);
+    checkHits(q,  new int[] {13});
+
+
+  }
   
   public void testSpanNots() throws Throwable{
      assertEquals("SpanNotIncludeExcludeSame1", 0, spanCount("s2", "s2", 0, 0), 0);