# es-helper **Repository Path**: codehcy/es-helper ## Basic Information - **Project Name**: es-helper - **Description**: es 7.x 以上的客户端封装,简单便捷 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2021-09-10 - **Last Updated**: 2022-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # es-helper 为了便捷连接操作elasticsearch,简单方便 # 适用场景 适用于 Es 7.x 的多条件查询,节约代码,快速开发。 详情见 pom.xml ### 步骤: ###### 1.打包引入 ###### 2.配置es的连接地址 ``` spring: elasticsearch: rest: uris: 172.16.10.26:9200,172.16.10.27:9200,172.16.10.28:9200 ``` ###### 3.注入EsDoor ``` @Resource private EsDoor esDoor; ``` ###### 4.直接使用(只需要你定义好索引对应的实体类,就可以通过lambda的方式,避免写列名。) ``` EsQueryWrapper userEsQueryWrapper = new EsQueryWrapper<>(); userEsQueryWrapper.like(EsUserDTO::getName,text); userEsQueryWrapper.highlight(EsUserDTO::getName); List> query = esDoor.query("索引名", userEsQueryWrapper); ``` ###### 5.示例 ``` /** * @Author huchenying * @Description 简单示例 * @Date 2021/9/13 **/ @RestController public class EsController { Logger logger = LoggerFactory.getLogger(EsController.class); @Autowired EsDoor esDoor; @PostMapping("/getSome") public List> getSome(@RequestBody MemberPortrait query) { logger.info("getSome start param ->{}", ToStringBuilder.reflectionToString(query)); EsQueryWrapper wrapper = new EsQueryWrapper<>(); //重载的方法可以添加condition决定是否加入查询条件 ,linktype 有 or 和 and 多条件之间的关系 wrapper.eq(ObjectUtils.isNotEmpty(query.getMemberId()), MemberPortrait::getMemberId, query.getMemberId()) .like(ObjectUtils.isNotEmpty(query.getName()), MemberPortrait::getName, query.getName()) .gt(ObjectUtils.isNotEmpty(query.getBalance()), MemberPortrait::getBalance, query.getBalance()) .lt(ObjectUtils.isNotEmpty(query.getBalance()), MemberPortrait::getBalance, query.getBalance()) .like(ObjectUtils.isNotEmpty(query.getName()), MemberPortrait::getName, query.getName(), LinkType.OR) //高亮 .highlight(MemberPortrait::getName) //自定义分词器 .analyzer(AnalyzerType.IK_SMART) //分页 .page(0, 10); return esDoor.query(Index.PORTRAIT.getName(), wrapper); } ``` ###### 6.配置 (maven仓库部分依赖没有,以下是我整理的一套,报错就在项目中引入下面依赖,可能是因为版本问题。) ``` 1.8 7.3.2 org.elasticsearch.client elasticsearch-rest-high-level-client ${es.version} org.elasticsearch elasticsearch org.elasticsearch.client elasticsearch-rest-client org.elasticsearch elasticsearch ${es.version} org.apache.lucene lucene-core org.elasticsearch.client elasticsearch-rest-client ${es.version} org.apache.lucene lucene-core 8.1.1 ```