springboot jest链接es
JestClient是一款基于HTTP实现的ES客户端,在RestHighLevelClient出现之前,它填补了ES缺少HTTP REST接口客户端的空白。JestClient具有一定的ES服务端版本兼容性,支持数据的同步和异步操作,同时,它也提供了索引时和搜索结果的POJO映射机制,即OR-Mapping功能
依赖配置:
<!--Jest依赖--> <dependency> <groupId>io.searchbox</groupId> <artifactId>jest</artifactId> <version>6.3.1</version> </dependency> <!--ES依赖--> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.10.2</version> </dependency>
在application.yml文件中配置ES的连接信息:
spring:
elasticsearch:
jest:
uris: http://127.0.0.1:9200
username:
password:
Jest客户端搜索文档:
import lombok.Data; @Data public class Hotel { String title; //对应于索引中的title String city; //对应于索引中的city String price; //对应于索引中的price }
@Service public class EsHotelService { @Autowired JestClient jestClient; public List<Hotel> getHotelFromTitle(String keyword) { MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", keyword);//match搜索 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(matchQueryBuilder); Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex("hotel").build();//创建搜索请求 try { JestResult jestResult = jestClient.execute(search);//执行搜索 if (jestResult.isSucceeded()) {//判断搜索是否成功 return jestResult.getSourceAsObjectList(Hotel.class);//将结果封装到Hotel类型的List中 } } catch (Exception e) { e.printStackTrace(); } return null; } }
@Slf4j @Api(tags = "EsHotelController") @RestController public class EsHotelController { @Autowired EsHotelService esHotelService; @GetMapping(value = "/getHotelFromTitle") public String getHotelFromTitle() { List<Hotel> hotelList = esHotelService.getHotelFromTitle("再来");//调用service完成搜索 if (hotelList != null && hotelList.size() > 0) {//搜索到结果打印到前端 return hotelList.toString(); } else { return "no data."; } } }
文章参考:Elasticsearch搜索引擎构建入门与实战 --> 2.4 Jest客户端简介
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2019-12-02 java js url特殊格式处理 json特殊格式处理