org.nlpcn.es4sql.domain.Paramer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticsearch-sql Show documentation
Show all versions of elasticsearch-sql Show documentation
Query elasticsearch using SQL
package org.nlpcn.es4sql.domain;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.expr.SQLCharExpr;
import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
import com.alibaba.druid.sql.ast.expr.SQLNumericLiteralExpr;
import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.index.query.MatchPhraseQueryBuilder;
import org.elasticsearch.index.query.MatchQueryBuilder;
import org.elasticsearch.index.query.QueryStringQueryBuilder;
import org.elasticsearch.index.query.WildcardQueryBuilder;
import org.nlpcn.es4sql.exception.SqlParseException;
public class Paramer {
public String analysis;
public Float boost;
public String value;
public static Paramer parseParamer(SQLMethodInvokeExpr method) throws SqlParseException {
Paramer instance = new Paramer();
List parameters = method.getParameters();
instance.value = ((SQLCharExpr) parameters.get(0)).getText();
SQLExpr sqlExpr = null;
for (int i = 1; i < parameters.size(); i++) {
sqlExpr = parameters.get(i);
if (sqlExpr instanceof SQLCharExpr) {
instance.analysis = ((SQLCharExpr) sqlExpr).getText();
} else {
instance.boost = ((SQLNumericLiteralExpr) sqlExpr).getNumber().floatValue();
}
}
return instance;
}
public static ToXContent fullParamer(MatchPhraseQueryBuilder query, Paramer paramer) {
if (paramer.analysis != null) {
query.analyzer(paramer.analysis);
}
if (paramer.boost != null) {
query.boost(paramer.boost);
}
return query;
}
public static ToXContent fullParamer(MatchQueryBuilder query, Paramer paramer) {
if (paramer.analysis != null) {
query.analyzer(paramer.analysis);
}
if (paramer.boost != null) {
query.boost(paramer.boost);
}
return query;
}
public static ToXContent fullParamer(WildcardQueryBuilder query, Paramer paramer) {
if (paramer.boost != null) {
query.boost(paramer.boost);
}
return query;
}
public static ToXContent fullParamer(QueryStringQueryBuilder query, Paramer paramer) {
if (paramer.analysis != null) {
query.analyzer(paramer.analysis);
}
if (paramer.boost != null) {
query.boost(paramer.boost);
}
return query;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy