/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.kernel.search.generic; import com.liferay.portal.kernel.search.BaseQueryImpl; import com.liferay.portal.kernel.search.query.QueryVisitor; import com.liferay.portal.kernel.util.StringBundler; /** * @author Michael C. Han */ public class MatchQuery extends BaseQueryImpl { public MatchQuery(String field, String value) { _field = field; _value = value; } @Override public <T> T accept(QueryVisitor<T> queryVisitor) { return queryVisitor.visitQuery(this); } public String getAnalyzer() { return _analyzer; } public Float getCutOffFrequency() { return _cutOffFrequency; } public String getField() { return _field; } public Float getFuzziness() { return _fuzziness; } public RewriteMethod getFuzzyRewriteMethod() { return _fuzzyRewriteMethod; } public Integer getMaxExpansions() { return _maxExpansions; } public String getMinShouldMatch() { return _minShouldMatch; } public Operator getOperator() { return _operator; } public Integer getPrefixLength() { return _prefixLength; } public Integer getSlop() { return _slop; } public Type getType() { return _type; } public String getValue() { return _value; } public ZeroTermsQuery getZeroTermsQuery() { return _zeroTermsQuery; } public Boolean isFuzzyTranspositions() { return _fuzzyTranspositions; } public Boolean isLenient() { return _lenient; } public void setAnalyzer(String analyzer) { _analyzer = analyzer; } public void setCutOffFrequency(Float cutOffFrequency) { _cutOffFrequency = cutOffFrequency; } public void setFuzziness(Float fuzziness) { _fuzziness = fuzziness; } public void setFuzzyRewriteMethod(RewriteMethod fuzzyRewriteMethod) { _fuzzyRewriteMethod = fuzzyRewriteMethod; } public void setFuzzyTranspositions(Boolean fuzzyTranspositions) { _fuzzyTranspositions = fuzzyTranspositions; } public void setLenient(Boolean lenient) { _lenient = lenient; } public void setMaxExpansions(Integer maxExpansions) { _maxExpansions = maxExpansions; } public void setMinShouldMatch(String minShouldMatch) { _minShouldMatch = minShouldMatch; } public void setOperator(Operator operator) { _operator = operator; } public void setPrefixLength(Integer prefixLength) { _prefixLength = prefixLength; } public void setSlop(Integer slop) { _slop = slop; } public void setType(Type type) { _type = type; } public void setZeroTermsQuery(ZeroTermsQuery zeroTermsQuery) { _zeroTermsQuery = zeroTermsQuery; } @Override public String toString() { StringBundler sb = new StringBundler(29); sb.append("{analyzer="); sb.append(_analyzer); sb.append(", className="); Class<?> clazz = getClass(); sb.append(clazz.getSimpleName()); sb.append(", cutOffFrequency="); sb.append(_cutOffFrequency); sb.append(", field="); sb.append(_field); sb.append(", fuzziness="); sb.append(_fuzziness); sb.append(", fuzzyTranspositions="); sb.append(_fuzzyTranspositions); sb.append(", lenient="); sb.append(_lenient); sb.append(", maxExpansions="); sb.append(_maxExpansions); sb.append(", minShouldMatch="); sb.append(_minShouldMatch); sb.append(", operator="); sb.append(_operator); sb.append(", prefixLength="); sb.append(_prefixLength); sb.append(", slop="); sb.append(_slop); sb.append(", type="); sb.append(_type); sb.append(", value="); sb.append(_value); sb.append("}"); return sb.toString(); } public enum Operator { AND, OR } public enum RewriteMethod { CONSTANT_SCORE_AUTO, CONSTANT_SCORE_BOOLEAN, CONSTANT_SCORE_FILTER, SCORING_BOOLEAN, TOP_TERMS_N, TOP_TERMS_BOOST_N } public enum Type { BOOLEAN, PHRASE, PHRASE_PREFIX } public enum ZeroTermsQuery { ALL, NONE } private String _analyzer; private Float _cutOffFrequency; private final String _field; private Float _fuzziness; private RewriteMethod _fuzzyRewriteMethod; private Boolean _fuzzyTranspositions; private Boolean _lenient; private Integer _maxExpansions; private String _minShouldMatch; private Operator _operator; private Integer _prefixLength; private Integer _slop; private Type _type; private final String _value; private ZeroTermsQuery _zeroTermsQuery; }