Skip to content

Commit 78c2afc

Browse files
committed
1 parent d096b72 commit 78c2afc

File tree

3 files changed

+46
-7
lines changed

3 files changed

+46
-7
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>org.nlpcn</groupId>
55
<artifactId>elasticsearch-sql</artifactId>
6-
<version>6.5.4.1</version>
6+
<version>6.5.4.2</version>
77
<packaging>jar</packaging>
88
<description>Query elasticsearch using SQL</description>
99
<name>elasticsearch-sql</name>

src/main/java/org/nlpcn/es4sql/domain/Paramer.java

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.HashMap;
44
import java.util.List;
5+
import java.util.Locale;
56
import java.util.Map;
67

78
import com.alibaba.druid.sql.ast.SQLExpr;
@@ -10,23 +11,25 @@
1011
import com.alibaba.druid.sql.ast.expr.SQLMethodInvokeExpr;
1112
import com.alibaba.druid.sql.ast.expr.SQLNumericLiteralExpr;
1213
import org.elasticsearch.common.Strings;
14+
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
1315
import org.elasticsearch.common.xcontent.ToXContent;
1416
import org.elasticsearch.index.query.*;
1517
import org.nlpcn.es4sql.Util;
1618
import org.nlpcn.es4sql.exception.SqlParseException;
1719

1820
public class Paramer {
1921
private String analysis;
20-
public Float boost;
22+
private Float boost;
2123
public String value;
2224
public Integer slop;
2325

24-
public Map<String, Float> fieldsBoosts = new HashMap<>();
25-
public String type;
26+
private Map<String, Float> fieldsBoosts = new HashMap<>();
27+
private String type;
2628
private Float tieBreaker;
27-
public Operator operator;
29+
private Operator operator;
2830

2931
private String defaultField;
32+
private String minimumShouldMatch;
3033

3134
private Boolean inOrder;
3235
public String clauses;
@@ -90,6 +93,9 @@ public static Paramer parseParamer(SQLMethodInvokeExpr method) throws SqlParseEx
9093
case "clauses":
9194
instance.clauses = Util.expr2Object(sqlExpr.getRight()).toString();
9295
break;
96+
case "minimum_should_match":
97+
instance.minimumShouldMatch = Util.expr2Object(sqlExpr.getRight()).toString();
98+
break;
9399

94100
default:
95101
break;
@@ -124,6 +130,15 @@ public static ToXContent fullParamer(MatchQueryBuilder query, Paramer paramer) {
124130
if (paramer.boost != null) {
125131
query.boost(paramer.boost);
126132
}
133+
134+
if (paramer.operator != null) {
135+
query.operator(paramer.operator);
136+
}
137+
138+
if (paramer.minimumShouldMatch != null) {
139+
query.minimumShouldMatch(paramer.minimumShouldMatch);
140+
}
141+
127142
return query;
128143
}
129144

@@ -151,6 +166,24 @@ public static ToXContent fullParamer(QueryStringQueryBuilder query, Paramer para
151166
query.defaultField(paramer.defaultField);
152167
}
153168

169+
if (paramer.tieBreaker != null) {
170+
query.tieBreaker(paramer.tieBreaker);
171+
}
172+
173+
if (paramer.operator != null) {
174+
query.defaultOperator(paramer.operator);
175+
}
176+
177+
if (paramer.type != null) {
178+
query.type(MultiMatchQueryBuilder.Type.parse(paramer.type.toLowerCase(Locale.ROOT), LoggingDeprecationHandler.INSTANCE));
179+
}
180+
181+
if (paramer.minimumShouldMatch != null) {
182+
query.minimumShouldMatch(paramer.minimumShouldMatch);
183+
}
184+
185+
query.fields(paramer.fieldsBoosts);
186+
154187
return query;
155188
}
156189

@@ -179,6 +212,12 @@ public static ToXContent fullParamer(MultiMatchQueryBuilder query, Paramer param
179212
query.operator(paramer.operator);
180213
}
181214

215+
if (paramer.minimumShouldMatch != null) {
216+
query.minimumShouldMatch(paramer.minimumShouldMatch);
217+
}
218+
219+
query.fields(paramer.fieldsBoosts);
220+
182221
return query;
183222
}
184223

src/main/java/org/nlpcn/es4sql/query/maker/Maker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ private ToXContent make(Condition cond, String name, SQLMethodInvokeExpr value)
113113
case "multi_match":
114114
case "multimatch":
115115
paramer = Paramer.parseParamer(value);
116-
MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery(paramer.value).fields(paramer.fieldsBoosts);
116+
MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery(paramer.value);
117117
bqb = Paramer.fullParamer(multiMatchQuery, paramer);
118118
break;
119119

@@ -137,7 +137,7 @@ private ToXContent make(Condition cond, String name, SQLMethodInvokeExpr value)
137137
}
138138

139139
//
140-
SpanNearQueryBuilder spanNearQuery = QueryBuilders.spanNearQuery(clauses.get(0), paramer.slop);
140+
SpanNearQueryBuilder spanNearQuery = QueryBuilders.spanNearQuery(clauses.get(0), Optional.ofNullable(paramer.slop).orElse(SpanNearQueryBuilder.DEFAULT_SLOP));
141141
for (int i = 1; i < clauses.size(); ++i) {
142142
spanNearQuery.addClause(clauses.get(i));
143143
}

0 commit comments

Comments
 (0)