Commit 5c71cc03 by 赵剑炜

修改查询规则

parent a2f0fe75
...@@ -12,6 +12,7 @@ public class EquipmentTypeDto { ...@@ -12,6 +12,7 @@ public class EquipmentTypeDto {
private String id; private String id;
private String name; private String name;
private String nickName;
private String unit; private String unit;
private String unitType; private String unitType;
private String parentId; private String parentId;
......
...@@ -16,6 +16,8 @@ public class QueryEquipmentTypeReq { ...@@ -16,6 +16,8 @@ public class QueryEquipmentTypeReq {
private String code; private String code;
private String parentId; private String parentId;
private Integer type; private Integer type;
private String searchType;
private String typeName; private String typeName;
private String nickName;
} }
...@@ -22,6 +22,7 @@ public class UpdateEquipmentTypeReq { ...@@ -22,6 +22,7 @@ public class UpdateEquipmentTypeReq {
@NotBlank(message = "名称不能为空", groups = {ValidationApi.edit.class, ValidationApi.add.class}) @NotBlank(message = "名称不能为空", groups = {ValidationApi.edit.class, ValidationApi.add.class})
private String name; private String name;
private String nickName;
private String note; private String note;
@NotBlank(message = "上级不能为空", groups = {ValidationApi.edit.class, ValidationApi.add.class}) @NotBlank(message = "上级不能为空", groups = {ValidationApi.edit.class, ValidationApi.add.class})
private String parentId; private String parentId;
......
...@@ -33,7 +33,11 @@ public class EquipmentType implements Serializable { ...@@ -33,7 +33,11 @@ public class EquipmentType implements Serializable {
*/ */
@ApiModelProperty(value = "类型名称") @ApiModelProperty(value = "类型名称")
private String name; private String name;
/**
* 类型名称
*/
@ApiModelProperty(value = "别名")
private String nickName;
/** /**
* 单位 * 单位
*/ */
......
...@@ -288,7 +288,7 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E ...@@ -288,7 +288,7 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
ElasticsearchUtil es=new ElasticsearchUtil<>(client); ElasticsearchUtil es=new ElasticsearchUtil<>(client);
// 先从ES中拿到检索数据 // 先从ES中拿到检索数据
List<EquipmentType> searchResults = es.searchEntities("type_pinyin","name",0, 50,req.getType(), req.getTypeName(),EquipmentType.class); List<EquipmentType> searchResults = es.searchEntities("type_pinyin",req.getNickName(),"name",0, 50,req.getType(), req.getTypeName(), req.getSearchType(), EquipmentType.class);
LambdaQueryWrapper<EquipmentType> wp = this.createWrapper(req); LambdaQueryWrapper<EquipmentType> wp = this.createWrapper(req);
// 获取所有组织机构数据 // 获取所有组织机构数据
List<EquipmentType> allTypes = this.list(wp); List<EquipmentType> allTypes = this.list(wp);
......
package com.junmp.jyzb.utils; package com.junmp.jyzb.utils;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
...@@ -26,7 +27,7 @@ public class ElasticsearchUtil<T> { ...@@ -26,7 +27,7 @@ public class ElasticsearchUtil<T> {
this.client = client; this.client = client;
} }
public List<T> searchEntities(String typeName,String index, Integer pageNum, Integer pageSize,Integer type, String keyword, Class<T> entityClass) throws IOException { public List<T> searchEntities(String typeName,String nickName, String index, Integer pageNum, Integer pageSize,Integer type, String keyword,String searchType, Class<T> entityClass) throws IOException {
if (pageNum < 0) pageNum = 0; if (pageNum < 0) pageNum = 0;
SearchRequest request = new SearchRequest(typeName); SearchRequest request = new SearchRequest(typeName);
...@@ -34,13 +35,29 @@ public class ElasticsearchUtil<T> { ...@@ -34,13 +35,29 @@ public class ElasticsearchUtil<T> {
builder.from(pageNum); builder.from(pageNum);
builder.size(pageSize); builder.size(pageSize);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// MatchQueryBuilder matchQueryBuilder=new MatchQueryBuilder();
if (searchType.equals("normal"))
{
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(index, keyword).operator(Operator.AND);
boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.should(matchQueryBuilder);
builder.query(boolQueryBuilder);
} else if (searchType.equals("match")) {
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(index, keyword).operator(Operator.OR);
boolQueryBuilder = QueryBuilders.boolQuery();
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(index, keyword).operator(Operator.AND); boolQueryBuilder.should(matchQueryBuilder);
// MatchQueryBuilder matchQueryBuilder2 = QueryBuilders.matchQuery(index+".pinyin", keyword).operator(Operator.AND);
builder.query(boolQueryBuilder);
}
// 如果 nickName 不为空,则同时匹配 nickName 和 typeName
if (StringUtils.isNotBlank(nickName)) {
MatchQueryBuilder nickNameQueryBuilder = QueryBuilders.matchQuery("nickName", nickName).operator(Operator.AND);
boolQueryBuilder.should(nickNameQueryBuilder);
}
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.should(matchQueryBuilder);
// boolQueryBuilder.should(matchQueryBuilder2);
if (typeName.equals("orgName")) if (typeName.equals("orgName"))
{ {
builder.postFilter(new TermQueryBuilder("delFlag", 1)); builder.postFilter(new TermQueryBuilder("delFlag", 1));
...@@ -49,7 +66,7 @@ public class ElasticsearchUtil<T> { ...@@ -49,7 +66,7 @@ public class ElasticsearchUtil<T> {
builder.postFilter(new TermQueryBuilder("type",type)); builder.postFilter(new TermQueryBuilder("type",type));
} }
builder.query(boolQueryBuilder);
builder.timeout(new TimeValue(60, TimeUnit.SECONDS)); builder.timeout(new TimeValue(60, TimeUnit.SECONDS));
request.source(builder); request.source(builder);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论