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);