diff --git lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java index ee681c7..faa9b6a 100644 --- lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java +++ lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java @@ -205,6 +205,14 @@ public class AnalyzingSuggester extends Lookup { } /** + * Calls {@link #AnalyzingSuggester(Analyzer, Analyzer, int, int, int, boolean) + * AnalyzingSuggester(indexAnalyzer, queryAnalyzer, options, + * maxSurfaceFormsPerAnalyzedForm, maxGraphExpansions, true)} + */ + public AnalyzingSuggester(Analyzer indexAnalyzer, Analyzer queryAnalyzer, int options, int maxSurfaceFormsPerAnalyzedForm, int maxGraphExpansions) { + this(indexAnalyzer, queryAnalyzer, options, maxSurfaceFormsPerAnalyzedForm, maxGraphExpansions, true); + } + /** * Creates a new suggester. * * @param indexAnalyzer Analyzer that will be used for @@ -219,8 +227,11 @@ public class AnalyzingSuggester extends Lookup { * @param maxGraphExpansions Maximum number of graph paths * to expand from the analyzed form. Set this to -1 for * no limit. + * @param preservePositionIncrements Whether position holes + * should appear in the automata */ - public AnalyzingSuggester(Analyzer indexAnalyzer, Analyzer queryAnalyzer, int options, int maxSurfaceFormsPerAnalyzedForm, int maxGraphExpansions) { + public AnalyzingSuggester(Analyzer indexAnalyzer, Analyzer queryAnalyzer, int options, int maxSurfaceFormsPerAnalyzedForm, int maxGraphExpansions, + boolean preservePositionIncrements) { this.indexAnalyzer = indexAnalyzer; this.queryAnalyzer = queryAnalyzer; if ((options & ~(EXACT_FIRST | PRESERVE_SEP)) != 0) { @@ -242,7 +253,7 @@ public class AnalyzingSuggester extends Lookup { throw new IllegalArgumentException("maxGraphExpansions must -1 (no limit) or > 0 (got: " + maxGraphExpansions + ")"); } this.maxGraphExpansions = maxGraphExpansions; - preservePositionIncrements = true; + this.preservePositionIncrements = preservePositionIncrements; } /** Whether to take position holes (position increment > 1) into account when diff --git lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/FuzzySuggester.java lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/FuzzySuggester.java index 2456a90..9c8b745 100644 --- lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/FuzzySuggester.java +++ lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/FuzzySuggester.java @@ -129,6 +129,19 @@ public final class FuzzySuggester extends AnalyzingSuggester { } /** + * Calls {@link #FuzzySuggester(Analyzer, Analyzer, int, int, int, boolean, int, boolean, int, int, boolean) + * FuzzySuggester(indexAnalyzer, queryAnalyzer, options, maxSurfaceFormsPerAnalyzedForm, maxGraphExpansions, + * true, maxEdits, transpositions, nonFuzzyPrefix, minFuzzyLength, unicodeAware)} + */ + public FuzzySuggester(Analyzer indexAnalyzer, Analyzer queryAnalyzer, + int options, int maxSurfaceFormsPerAnalyzedForm, int maxGraphExpansions, + int maxEdits, boolean transpositions, int nonFuzzyPrefix, + int minFuzzyLength, boolean unicodeAware) { + this(indexAnalyzer, queryAnalyzer, options, maxSurfaceFormsPerAnalyzedForm, + maxGraphExpansions, true, maxEdits, transpositions, nonFuzzyPrefix, + minFuzzyLength, unicodeAware); + } + /** * Creates a {@link FuzzySuggester} instance. * * @param indexAnalyzer Analyzer that will be used for @@ -143,6 +156,7 @@ public final class FuzzySuggester extends AnalyzingSuggester { * @param maxGraphExpansions Maximum number of graph paths * to expand from the analyzed form. Set this to -1 for * no limit. + * @param preservePositionIncrements Whether position holes should appear in the automaton * @param maxEdits must be >= 0 and <= {@link LevenshteinAutomata#MAXIMUM_SUPPORTED_DISTANCE} . * @param transpositions true if transpositions should be treated as a primitive * edit operation. If this is false, comparisons will implement the classic @@ -153,9 +167,9 @@ public final class FuzzySuggester extends AnalyzingSuggester { */ public FuzzySuggester(Analyzer indexAnalyzer, Analyzer queryAnalyzer, int options, int maxSurfaceFormsPerAnalyzedForm, int maxGraphExpansions, - int maxEdits, boolean transpositions, int nonFuzzyPrefix, - int minFuzzyLength, boolean unicodeAware) { - super(indexAnalyzer, queryAnalyzer, options, maxSurfaceFormsPerAnalyzedForm, maxGraphExpansions); + boolean preservePositionIncrements, int maxEdits, boolean transpositions, + int nonFuzzyPrefix, int minFuzzyLength, boolean unicodeAware) { + super(indexAnalyzer, queryAnalyzer, options, maxSurfaceFormsPerAnalyzedForm, maxGraphExpansions, preservePositionIncrements); if (maxEdits < 0 || maxEdits > LevenshteinAutomata.MAXIMUM_SUPPORTED_DISTANCE) { throw new IllegalArgumentException("maxEdits must be between 0 and " + LevenshteinAutomata.MAXIMUM_SUPPORTED_DISTANCE); }