mirror of https://github.com/apache/lucene.git
A small improvement in FuzzyTermsEnum, as the ArrayList was initially allocated with one element less so internal array reallocated every time. This removes the use of ArrayList at all.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@965216 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
42aa9a20b3
commit
19a14cbefa
|
@ -33,7 +33,7 @@ import org.apache.lucene.util.automaton.ByteRunAutomaton;
|
||||||
import org.apache.lucene.util.automaton.LevenshteinAutomata;
|
import org.apache.lucene.util.automaton.LevenshteinAutomata;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.Arrays;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ public final class FuzzyTermsEnum extends TermsEnum {
|
||||||
LevenshteinAutomata builder =
|
LevenshteinAutomata builder =
|
||||||
new LevenshteinAutomata(UnicodeUtil.newString(termText, realPrefixLength, termText.length - realPrefixLength));
|
new LevenshteinAutomata(UnicodeUtil.newString(termText, realPrefixLength, termText.length - realPrefixLength));
|
||||||
|
|
||||||
runAutomata = new ArrayList<ByteRunAutomaton>(maxDistance);
|
final ByteRunAutomaton[] ra = new ByteRunAutomaton[maxDistance + 1];
|
||||||
for (int i = 0; i <= maxDistance; i++) {
|
for (int i = 0; i <= maxDistance; i++) {
|
||||||
Automaton a = builder.toAutomaton(i);
|
Automaton a = builder.toAutomaton(i);
|
||||||
// constant prefix
|
// constant prefix
|
||||||
|
@ -144,8 +144,9 @@ public final class FuzzyTermsEnum extends TermsEnum {
|
||||||
UnicodeUtil.newString(termText, 0, realPrefixLength));
|
UnicodeUtil.newString(termText, 0, realPrefixLength));
|
||||||
a = BasicOperations.concatenate(prefix, a);
|
a = BasicOperations.concatenate(prefix, a);
|
||||||
}
|
}
|
||||||
runAutomata.add(new ByteRunAutomaton(a));
|
ra[i] = new ByteRunAutomaton(a);
|
||||||
}
|
}
|
||||||
|
runAutomata = Arrays.asList(ra);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue