001
014
015 package com.liferay.portal.kernel.search.suggest;
016
017 import com.liferay.portal.kernel.search.Query;
018
019 import java.util.Collections;
020 import java.util.HashMap;
021 import java.util.HashSet;
022 import java.util.Map;
023 import java.util.Set;
024
025
028 public class PhraseSuggester extends BaseSuggester {
029
030 public PhraseSuggester(String name, String field) {
031 super(name, field);
032 }
033
034 public PhraseSuggester(String name, String field, String value) {
035 super(name, field, value);
036 }
037
038 @Override
039 public <T> T accept(SuggesterVisitor<T> suggesterVisitor) {
040 return suggesterVisitor.visit(this);
041 }
042
043 public void addCandidateGenerator(CandidateGenerator candidateGenerator) {
044 _candidateGenerators.add(candidateGenerator);
045 }
046
047 public String getAnalyzer() {
048 return _analyzer;
049 }
050
051 public Set<CandidateGenerator> getCandidateGenerators() {
052 return Collections.unmodifiableSet(_candidateGenerators);
053 }
054
055 public Collate getCollate() {
056 return _collate;
057 }
058
059 public Float getConfidence() {
060 return _confidence;
061 }
062
063 public Integer getGramSize() {
064 return _gramSize;
065 }
066
067 public Float getMaxErrors() {
068 return _maxErrors;
069 }
070
071 public String getPostHighlightFilter() {
072 return _postHighlightFilter;
073 }
074
075 public String getPreHighlightFilter() {
076 return _preHighlightFilter;
077 }
078
079 public Float getRealWordErrorLikelihood() {
080 return _realWordErrorLikelihood;
081 }
082
083 public String getSeparator() {
084 return _separator;
085 }
086
087 public Integer getShardSize() {
088 return _shardSize;
089 }
090
091 public Integer getSize() {
092 return _size;
093 }
094
095 public Integer getTokenLimit() {
096 return _tokenLimit;
097 }
098
099 public Boolean isForceUnigrams() {
100 return _forceUnigrams;
101 }
102
103 public void setAnalyzer(String analyzer) {
104 _analyzer = analyzer;
105 }
106
107 public void setCollate(Collate collate) {
108 _collate = collate;
109 }
110
111 public void setConfidence(Float confidence) {
112 _confidence = confidence;
113 }
114
115 public void setForceUnigrams(Boolean forceUnigrams) {
116 _forceUnigrams = forceUnigrams;
117 }
118
119 public void setGramSize(Integer gramSize) {
120 _gramSize = gramSize;
121 }
122
123 public void setMaxErrors(Float maxErrors) {
124 _maxErrors = maxErrors;
125 }
126
127 public void setPostHighlightFilter(String postHighlightFilter) {
128 _postHighlightFilter = postHighlightFilter;
129 }
130
131 public void setPreHighlightFilter(String preHighlightFilter) {
132 _preHighlightFilter = preHighlightFilter;
133 }
134
135 public void setRealWordErrorLikelihood(Float realWordErrorLikelihood) {
136 _realWordErrorLikelihood = realWordErrorLikelihood;
137 }
138
139 public void setSeparator(String separator) {
140 _separator = separator;
141 }
142
143 public void setShardSize(Integer shardSize) {
144 _shardSize = shardSize;
145 }
146
147 public void setSize(Integer size) {
148 _size = size;
149 }
150
151 public void setTokenLimit(Integer tokenLimit) {
152 _tokenLimit = tokenLimit;
153 }
154
155 public static class CandidateGenerator {
156
157 public CandidateGenerator(String field) {
158 _field = field;
159 }
160
161 @Override
162 public boolean equals(Object object) {
163 if (this == object) {
164 return true;
165 }
166
167 if ((object == null) || (object.getClass() != getClass())) {
168 return false;
169 }
170
171 CandidateGenerator candidateGenerator = (CandidateGenerator)object;
172
173 return _field.equals(candidateGenerator.getField());
174 }
175
176 public Float getAccuracy() {
177 return _accuracy;
178 }
179
180 public String getField() {
181 return _field;
182 }
183
184 public Integer getMaxEdits() {
185 return _maxEdits;
186 }
187
188 public Integer getMaxExpansions() {
189 return _maxExpansions;
190 }
191
192 public Integer getMaxInspections() {
193 return _maxInspections;
194 }
195
196 public Integer getMaxTermFreq() {
197 return _maxTermFreq;
198 }
199
200 public Integer getMinDocFreq() {
201 return _minDocFreq;
202 }
203
204 public Integer getMinWordLength() {
205 return _minWordLength;
206 }
207
208 public String getPostFilterAnalyzer() {
209 return _postFilterAnalyzer;
210 }
211
212 public String getPreFilterAnalyzer() {
213 return _preFilterAnalyzer;
214 }
215
216 public Integer getPrefixLength() {
217 return _prefixLength;
218 }
219
220 public Integer getSize() {
221 return _size;
222 }
223
224 public Sort getSort() {
225 return _sort;
226 }
227
228 public StringDistance getStringDistance() {
229 return _stringDistance;
230 }
231
232 public SuggestMode getSuggestMode() {
233 return _suggestMode;
234 }
235
236 @Override
237 public int hashCode() {
238 return _field.hashCode();
239 }
240
241 public void setAccuracy(Float accuracy) {
242 _accuracy = accuracy;
243 }
244
245 public void setMaxEdits(Integer maxEdits) {
246 _maxEdits = maxEdits;
247 }
248
249 public void setMaxExpansions(Integer maxExpansions) {
250 _maxExpansions = maxExpansions;
251 }
252
253 public void setMaxInspections(Integer maxInspections) {
254 _maxInspections = maxInspections;
255 }
256
257 public void setMaxTermFreq(Integer maxTermFreq) {
258 _maxTermFreq = maxTermFreq;
259 }
260
261 public void setMinDocFreq(Integer minDocFreq) {
262 _minDocFreq = minDocFreq;
263 }
264
265 public void setMinWordLength(Integer minWordLength) {
266 _minWordLength = minWordLength;
267 }
268
269 public void setPostFilterAnalyzer(String postFilterAnalyzer) {
270 _postFilterAnalyzer = postFilterAnalyzer;
271 }
272
273 public void setPreFilterAnalyzer(String preFilterAnalyzer) {
274 _preFilterAnalyzer = preFilterAnalyzer;
275 }
276
277 public void setPrefixLength(Integer prefixLength) {
278 _prefixLength = prefixLength;
279 }
280
281 public void setSize(Integer size) {
282 _size = size;
283 }
284
285 public void setSort(Sort sort) {
286 _sort = sort;
287 }
288
289 public void setStringDistance(StringDistance stringDistance) {
290 _stringDistance = stringDistance;
291 }
292
293 public void setSuggestMode(SuggestMode suggestMode) {
294 _suggestMode = suggestMode;
295 }
296
297 private Float _accuracy;
298 private final String _field;
299 private Integer _maxEdits;
300 private Integer _maxExpansions;
301 private Integer _maxInspections;
302 private Integer _maxTermFreq;
303 private Integer _minDocFreq;
304 private Integer _minWordLength;
305 private String _postFilterAnalyzer;
306 private String _preFilterAnalyzer;
307 private Integer _prefixLength;
308 private Integer _size;
309 private Sort _sort;
310 private StringDistance _stringDistance;
311 private SuggestMode _suggestMode;
312
313 }
314
315 public static class Collate {
316
317 public Collate(Query query) {
318 _query = query;
319 }
320
321 public void addParams(String key, Object value) {
322 _params.put(key, value);
323 }
324
325 public Map<String, Object> getParams() {
326 return _params;
327 }
328
329 public Query getQuery() {
330 return _query;
331 }
332
333 public Boolean isPrune() {
334 return _prune;
335 }
336
337 public void setPrune(Boolean prune) {
338 _prune = prune;
339 }
340
341 private final Map<String, Object> _params = new HashMap<>();
342 private Boolean _prune;
343 private final Query _query;
344
345 }
346
347 private String _analyzer;
348 private final Set<CandidateGenerator> _candidateGenerators =
349 new HashSet<>();
350 private Collate _collate;
351 private Float _confidence;
352 private Boolean _forceUnigrams;
353 private Integer _gramSize;
354 private Float _maxErrors;
355 private String _postHighlightFilter;
356 private String _preHighlightFilter;
357 private Float _realWordErrorLikelihood;
358 private String _separator;
359 private Integer _shardSize;
360 private Integer _size;
361 private Integer _tokenLimit;
362
363 }