作者 朱兆平

es多条件查询优化

@@ -165,9 +165,9 @@ public class ElasticSearchInfoController { @@ -165,9 +165,9 @@ public class ElasticSearchInfoController {
165 queryBuilder = queryBuilder.must(QueryBuilders.termQuery("ADMIN.MSGID",messageBusMsg.getMsgid())); 165 queryBuilder = queryBuilder.must(QueryBuilders.termQuery("ADMIN.MSGID",messageBusMsg.getMsgid()));
166 } 166 }
167 167
168 -// if (StringUtils.isNotBlank(messageBusMsg.getRcvrsUserName())){  
169 -// queryBuilder = queryBuilder.should(QueryBuilders.termQuery("rcvrs.username",messageBusMsg.getRcvrsUserName()));  
170 -// } 168 + if (StringUtils.isNotBlank(messageBusMsg.getRcvrsUserName())){
  169 + queryBuilder = queryBuilder.must(QueryBuilders.termQuery("ADMIN.RCVRS.USER",messageBusMsg.getRcvrsUserName()));
  170 + }
171 171
172 if (StringUtils.isNotBlank(messageBusMsg.getRcvlogUsername())){ 172 if (StringUtils.isNotBlank(messageBusMsg.getRcvlogUsername())){
173 queryBuilder = queryBuilder.must(QueryBuilders.termQuery("ADMIN.RCVLOG.USER",messageBusMsg.getRcvlogUsername())); 173 queryBuilder = queryBuilder.must(QueryBuilders.termQuery("ADMIN.RCVLOG.USER",messageBusMsg.getRcvlogUsername()));
@@ -176,15 +176,18 @@ public class ElasticSearchInfoController { @@ -176,15 +176,18 @@ public class ElasticSearchInfoController {
176 // queryBuilder = queryBuilder.must(QueryBuilders.rangeQuery("MSG.HEADER.DDTM").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1))); 176 // queryBuilder = queryBuilder.must(QueryBuilders.rangeQuery("MSG.HEADER.DDTM").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1)));
177 //or条件 177 //or条件
178 queryBuilder = queryBuilder.should(QueryBuilders.rangeQuery("ADMIN.CREATTIME").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1))); 178 queryBuilder = queryBuilder.should(QueryBuilders.rangeQuery("ADMIN.CREATTIME").from(messageBusMsg.getCreatimeSearch().get(0)).to(messageBusMsg.getCreatimeSearch().get(1)));
  179 + queryBuilder.minimumShouldMatch(1);
179 } 180 }
180 181
181 if (StringUtils.isNotBlank(messageBusMsg.getMsgid())){ 182 if (StringUtils.isNotBlank(messageBusMsg.getMsgid())){
182 queryBuilder = queryBuilder.should(QueryBuilders.termQuery("_id",messageBusMsg.getMsgid())); 183 queryBuilder = queryBuilder.should(QueryBuilders.termQuery("_id",messageBusMsg.getMsgid()));
  184 + queryBuilder.minimumShouldMatch(1);
183 } 185 }
184 //wild搜索大写搜不到小写也搜不到大写的包含,要转成小写 186 //wild搜索大写搜不到小写也搜不到大写的包含,要转成小写
185 if (StringUtils.isNotBlank(messageBusMsg.getAlias_sendContent())){ 187 if (StringUtils.isNotBlank(messageBusMsg.getAlias_sendContent())){
186 queryBuilder = queryBuilder.must(QueryBuilders.wildcardQuery("MSG.BODY", "*"+messageBusMsg.getAlias_sendContent().toLowerCase()+"*")); 188 queryBuilder = queryBuilder.must(QueryBuilders.wildcardQuery("MSG.BODY", "*"+messageBusMsg.getAlias_sendContent().toLowerCase()+"*"));
187 } 189 }
  190 +
188 log.info("bool查询语句为:{}",queryBuilder); 191 log.info("bool查询语句为:{}",queryBuilder);
189 return queryBuilder; 192 return queryBuilder;
190 } 193 }