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 2014/07/20 13:42:47 UTC

svn commit: r1612077 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/core/ lucene/core/src/java/org/apache/lucene/util/automaton/ lucene/sandbox/ lucene/sandbox/src/java/org/apache/lucene/search/ lucene/sandbox/src/test/org/apache/lucene/search/

Author: mikemccand
Date: Sun Jul 20 11:42:46 2014
New Revision: 1612077

URL: http://svn.apache.org/r1612077
Log:
LUCENE-5815: add TermAutomatonQuery

Added:
    lucene/dev/branches/branch_4x/lucene/sandbox/src/java/org/apache/lucene/search/
      - copied from r1612076, lucene/dev/trunk/lucene/sandbox/src/java/org/apache/lucene/search/
    lucene/dev/branches/branch_4x/lucene/sandbox/src/test/org/apache/lucene/search/
      - copied from r1612076, lucene/dev/trunk/lucene/sandbox/src/test/org/apache/lucene/search/
Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_4x/lucene/core/   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/automaton/Automaton.java
    lucene/dev/branches/branch_4x/lucene/sandbox/   (props changed)
    lucene/dev/branches/branch_4x/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java

Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1612077&r1=1612076&r2=1612077&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Sun Jul 20 11:42:46 2014
@@ -24,6 +24,13 @@ New Features
 
 * LUCENE-5826: Support proper hunspell case handling, LANG, KEEPCASE, NEEDAFFIX,
   and ONLYINCOMPOUND flags.  (Robert Muir)
+
+* LUCENE-5815: Add TermAutomatonQuery, a proximity query allowing you
+  to create an arbitrary automaton, using terms on the transitions,
+  expressing which sequence of sequential terms (including a special
+  "any" term) are allowed.  This is a generalization of
+  MultiPhraseQuery and span queries, and enables "correct" (including
+  position) length search-time graph synonyms.  (Mike McCandless)
   
 API Changes
 

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/automaton/Automaton.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/automaton/Automaton.java?rev=1612077&r1=1612076&r2=1612077&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/automaton/Automaton.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/util/automaton/Automaton.java Sun Jul 20 11:42:46 2014
@@ -533,8 +533,7 @@ public class Automaton {
       } else {
         b.append(" [shape=circle,label=\"" + state + "\"]\n");
       }
-      int numTransitions = getNumTransitions(state);
-      initTransition(state, t);
+      int numTransitions = initTransition(state, t);
       //System.out.println("toDot: state " + state + " has " + numTransitions + " transitions; t.nextTrans=" + t.transitionUpto);
       for(int i=0;i<numTransitions;i++) {
         getNextTransition(t);

Modified: lucene/dev/branches/branch_4x/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java?rev=1612077&r1=1612076&r2=1612077&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java (original)
+++ lucene/dev/branches/branch_4x/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java Sun Jul 20 11:42:46 2014
@@ -18,6 +18,7 @@ package org.apache.lucene.search;
  */
 
 import java.io.IOException;
+import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -286,7 +287,7 @@ public class TestTermAutomatonQuery exte
     q.addTransition(s2, s3, "sun");
     q.finish();
 
-    s.search(q, new SimpleCollector() {
+    s.search(q, new Collector() {
         private Scorer scorer;
 
         @Override
@@ -295,6 +296,10 @@ public class TestTermAutomatonQuery exte
         }
 
         @Override
+        public void setNextReader(AtomicReaderContext context) {
+        }
+
+        @Override
         public void setScorer(Scorer scorer) {
           assert scorer instanceof TermAutomatonScorer;
           this.scorer = scorer;
@@ -465,8 +470,8 @@ public class TestTermAutomatonQuery exte
     // Adds occassional random synonyms:
     Analyzer analyzer = new Analyzer() {
         @Override
-        public TokenStreamComponents createComponents(String fieldName) {
-          MockTokenizer tokenizer = new MockTokenizer(MockTokenizer.WHITESPACE, true, 100);
+        public TokenStreamComponents createComponents(String fieldName, Reader reader) {
+          MockTokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true, 100);
           tokenizer.setEnableChecks(true);
           TokenFilter filt = new MockTokenFilter(tokenizer, MockTokenFilter.EMPTY_STOPSET);
           filt = new RandomSynonymFilter(filt);