@@ -114,60 +114,65 @@ private static IndexMappingRecord getIndexMappingRecord(ElasticsearchClient clie
114114
115115 private static Query .Builder getCondition (IndexMappingRecord indexMappingRecord , CriteriaCondition condition ) {
116116 Element document = condition .element ();
117-
117+ String fieldName = document .name ();
118+ JsonData value = JsonData .of (document .value ().get ());
118119 switch (condition .condition ()) {
119120 case EQUALS :
120- if (supportTermQuery (indexMappingRecord , document . name () )) {
121+ if (supportTermQuery (indexMappingRecord , fieldName )) {
121122 return (Query .Builder ) new Query .Builder ()
122123 .term (TermQuery .of (tq -> tq
123- .field (document . name () )
124+ .field (fieldName )
124125 .value (v -> v
125- .anyValue (JsonData . of ( document . value (). get ()) ))));
126+ .anyValue (value ))));
126127 }
127128 return (Query .Builder ) new Query .Builder ()
128129 .match (MatchQuery .of (tq -> tq
129- .field (document . name () )
130+ .field (fieldName )
130131 .query (v -> v
131- .anyValue (JsonData . of ( document . value (). get ()) ))));
132+ .anyValue (value ))));
132133 case LESSER_THAN :
133134 return (Query .Builder ) new Query .Builder ()
134135 .range (RangeQuery .of (rq -> rq
135- .field (document .name ())
136- .lt (JsonData .of (document .value ().get ()))));
136+ .untyped (u -> u
137+ .field (fieldName )
138+ .lt (value ))));
137139 case LESSER_EQUALS_THAN :
138140 return (Query .Builder ) new Query .Builder ()
139141 .range (RangeQuery .of (rq -> rq
140- .field (document .name ())
141- .lte (JsonData .of (document .value ().get ()))));
142+ .untyped (u -> u
143+ .field (fieldName )
144+ .lte (value ))));
142145 case GREATER_THAN :
143146 return (Query .Builder ) new Query .Builder ()
144147 .range (RangeQuery .of (rq -> rq
145- .field (document .name ())
146- .gt (JsonData .of (document .value ().get ()))));
148+ .untyped (u -> u
149+ .field (fieldName )
150+ .gt (value ))));
147151 case GREATER_EQUALS_THAN :
148152 return (Query .Builder ) new Query .Builder ()
149153 .range (RangeQuery .of (rq -> rq
150- .field (document .name ())
151- .gte (JsonData .of (document .value ().get ()))));
154+ .untyped (u -> u
155+ .field (fieldName )
156+ .gte (value ))));
152157 case LIKE :
153158 return (Query .Builder ) new Query .Builder ()
154159 .queryString (QueryStringQuery .of (rq -> rq
155160 .query (document .value ().get (String .class ))
156161 .allowLeadingWildcard (true )
157- .fields (document . name () )));
162+ .fields (fieldName )));
158163 case IN :
159164 return (Query .Builder ) ValueUtil .convertToList (document .value ())
160165 .stream ()
161166 .map (val -> {
162- if (supportTermQuery (indexMappingRecord , document . name () )) {
167+ if (supportTermQuery (indexMappingRecord , fieldName )) {
163168 return new Query .Builder ()
164169 .term (TermQuery .of (tq -> tq
165- .field (document . name () )
170+ .field (fieldName )
166171 .value (v -> v .anyValue (JsonData .of (val )))));
167172 }
168173 return new Query .Builder ()
169174 .match (MatchQuery .of (tq -> tq
170- .field (document . name () )
175+ .field (fieldName )
171176 .query (v -> v .anyValue (JsonData .of (val )))));
172177 })
173178 .reduce ((d1 , d2 ) -> new Query .Builder ()
0 commit comments