行业门户网站运营wordpress怎么用ip访问
2026/4/18 8:26:25 网站建设 项目流程
行业门户网站运营,wordpress怎么用ip访问,wordpress实现上传下载,产品推广方案范本Spring Boot 整合 Easy-ES 实战操作详解 Easy-ES 是一个基于 Elasticsearch 的 ORM 框架#xff0c;类似于 MyBatis-Plus#xff0c;但专注于简化 ES 操作。它提供了 MySQL-like 的语法#xff0c;支持 Lambda 风格查询、自动映射、分页、聚合等功能#xff0c;极大降低了…Spring Boot 整合 Easy-ES 实战操作详解Easy-ES 是一个基于 Elasticsearch 的 ORM 框架类似于 MyBatis-Plus但专注于简化 ES 操作。它提供了 MySQL-like 的语法支持 Lambda 风格查询、自动映射、分页、聚合等功能极大降低了直接使用 RestHighLevelClient 的复杂度。Easy-ES 适合需要全文搜索、复杂查询的 Spring Boot 项目如电商搜索、日志分析等。本教程基于 Easy-ES 最新版本假设 2.x实际以 GitHub 最新为准从零搭建一个简单书籍管理系统演示 CRUD 操作。假设你有基本的 Spring Boot 和 Elasticsearch 知识。前提条件JDK 8推荐 17Spring Boot 2.7 或 3.xElasticsearch 7.x 或 8.x本地或云端安装启动后访问 http://localhost:9200 确认运行Maven 或 Gradle 作为构建工具IDE 如 IntelliJ IDEA步骤 1: 创建 Spring Boot 项目使用 Spring Initializr 创建项目Group: com.exampleArtifact: easy-es-demoDependencies: Spring Web, Spring Boot DevTools后续添加 Easy-ES下载后导入 IDE。步骤 2: 添加 Easy-ES 依赖在pom.xml中添加 Easy-ES Boot Starter 依赖从官方 GitHub 获取最新版本dependencies!-- Easy-ES Boot Starter --dependencygroupIdorg.dromara/groupIdartifactIdeasy-es-boot-starter/artifactIdversion2.7.1/version!-- 替换为最新版本从 Maven Central 或 GitHub 检查 --/dependency!-- Lombok 可选简化实体类 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency/dependencies更新 Maven 依赖。步骤 3: 配置 Elasticsearch 连接在application.yml或application.properties中配置 ES 连接。Easy-ES 会自动配置无需额外 Bean。# application.ymleasy-es:address:127.0.0.1:9200# ES 地址多个用逗号分隔username:elastic# 如果有认证password:your_passwordschema:http# 或 httpsconnect-timeout:1000# 连接超时mssocket-timeout:30000# 套接字超时msrequest-timeout:30000# 请求超时msconnect-request-timeout:1000# 其他可选配置enable-content-log: false关闭内容日志、enable-global-select: true 等# Spring Boot 日志级别可选调试用logging:level:org.dromara.easyes:debug最佳实践生产环境使用 HTTPS 和认证。如果 ES 集群配置多个 address。监控日志级别调试时设为 debug便于查看生成的 ES DSL 查询。步骤 4: 创建实体类Document实体类对应 ES 中的文档。使用EsId标记 ID使用EsIndexName指定索引名可选。importlombok.Data;importorg.dromara.easyes.annotation.IndexField;importorg.dromara.easyes.annotation.IndexId;importorg.dromara.easyes.annotation.IndexName;importorg.dromara.easyes.common.constants.EsConstants;importorg.dromara.easyes.common.enums.IdType;DataIndexName(book_index)// 指定 ES 索引名publicclassBook{IndexId(typeIdType.CUSTOMIZE)// ID 类型自定义或 PRIMARY_KEYprivateStringid;// ES 文档 IDIndexField(fieldTypeEsConstants.TEXT)// 指定字段类型privateStringtitle;// 书名IndexField(fieldTypeEsConstants.KEYWORD)privateStringauthor;// 作者IndexField(fieldTypeEsConstants.DOUBLE)privateDoubleprice;// 价格IndexField(fieldTypeEsConstants.DATE)privateStringpublishDate;// 出版日期 (格式: yyyy-MM-dd)}最佳实践使用IndexField指定类型避免默认映射错误e.g., text 用于全文搜索keyword 用于精确匹配。ID 类型CUSTOMIZE 为自定义字符串 IDPRIMARY_KEY 为自增。如果索引不存在Easy-ES 会自动创建。步骤 5: 创建 Mapper 接口Mapper 继承BaseEsMapperT无需实现方法即可使用 CRUD。importorg.dromara.easyes.core.base.BaseEsMapper;publicinterfaceBookMapperextendsBaseEsMapperBook{// 可自定义方法但基础 CRUD 已内置}最佳实践继承后即可调用insert、selectById、updateById、deleteById等。对于复杂查询使用 LambdaEsQueryWrapper 构建。步骤 6: 创建 Service 层Service 使用 Mapper 进行业务操作。importlombok.RequiredArgsConstructor;importorg.dromara.easyes.core.conditions.LambdaEsQueryWrapper;importorg.dromara.easyes.core.conditions.LambdaEsUpdateWrapper;importorg.springframework.stereotype.Service;importjava.util.List;ServiceRequiredArgsConstructorpublicclassBookService{privatefinalBookMapperbookMapper;// 新增书籍publicvoidaddBook(Bookbook){bookMapper.insert(book);}// 查询所有书籍publicListBookgetAllBooks(){LambdaEsQueryWrapperBookwrappernewLambdaEsQueryWrapper();returnbookMapper.selectList(wrapper);}// 根据标题模糊搜索publicListBooksearchByTitle(Stringtitle){LambdaEsQueryWrapperBookwrappernewLambdaEsQueryWrapper();wrapper.like(Book::getTitle,title);// 模糊匹配returnbookMapper.selectList(wrapper);}// 更新价格publicvoidupdatePrice(Stringid,DoublenewPrice){LambdaEsUpdateWrapperBookwrappernewLambdaEsUpdateWrapper();wrapper.eq(Book::getId,id).set(Book::getPrice,newPrice);bookMapper.update(null,wrapper);}// 删除书籍publicvoiddeleteBook(Stringid){bookMapper.deleteById(id);}}最佳实践使用 LambdaEsQueryWrapper 构建查询像 MyBatis-Plus 一样链式调用eq、like、gt、in 等。支持分页wrapper.limit(10, 1);size, page。聚合查询wrapper.groupBy(Book::getAuthor).agg(AggType.COUNT);避免直接写 ES DSL充分利用 Easy-ES 的 SQL-like 语法提高可读性。步骤 7: 创建 Controller 层暴露 REST API。importlombok.RequiredArgsConstructor;importorg.springframework.web.bind.annotation.*;importjava.util.List;RestControllerRequestMapping(/books)RequiredArgsConstructorpublicclassBookController{privatefinalBookServicebookService;// 新增PostMappingpublicStringadd(RequestBodyBookbook){bookService.addBook(book);returnAdded successfully;}// 查询所有GetMappingpublicListBookgetAll(){returnbookService.getAllBooks();}// 搜索GetMapping(/search)publicListBooksearch(RequestParamStringtitle){returnbookService.searchByTitle(title);}// 更新PutMapping(/{id})publicStringupdate(PathVariableStringid,RequestParamDoubleprice){bookService.updatePrice(id,price);returnUpdated successfully;}// 删除DeleteMapping(/{id})publicStringdelete(PathVariableStringid){bookService.deleteBook(id);returnDeleted successfully;}}步骤 8: 启动与测试启动 Spring Boot 应用main方法。ES 会自动创建索引book_index。使用 Postman 测试POST /books{“title”:“Spring Boot Guide”,“author”:“Author”,“price”:29.99,“publishDate”:“2026-01-01”}GET /books/search?titleSpring → 返回匹配书籍检查日志查看生成的 ES DSL 查询。常见问题与最佳实践索引管理Easy-ES 支持自动建索引但生产中建议手动优化映射analyzer、分词器。性能优化使用分页、避免全表扫描。复杂查询用 aggregation。错误处理捕获EsException日志记录 ES DSL。多数据源配置easy-es.datasource支持多 ES 集群。版本兼容确保 ES 版本与 Easy-ES 匹配官网检查。测试使用EsTest注解单元测试 Mapper。安全生产中启用 ES 认证配置用户名/密码。扩展支持自定义插件、拦截器e.g., 审计日志。参考来源Easy-ES GitHub 官方仓库。这个实战覆盖了基本整合如果你有特定场景如聚合查询、分页可以进一步扩展

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询