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客户端简介

 

posted @   草木物语  阅读(231)  评论(0编辑  收藏  举报
编辑推荐:
· 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特殊格式处理
点击右上角即可分享
微信分享提示