springboot java 项目连接es

springboot java 项目连接es

介绍

小项目,没有引用es客户端,直接使用的http的方式进行连接的,方式比较简单,但是依赖较少,一个比较小的项目,部署方便

业务也很简单就是把数据库中的数据读到es中,然后在做几个接口读es中的数据

版本

es版本 6.8.11

springboot 2.6.3

java 8

依赖

只有web和mysql的依赖,别的不需要

这里就不作介绍了,如果有需要可以私信我

开始

配置

这个是放到yml文件中的配置 就是es的地址

  es:
    url: http://127.0.0.1:9200/
    name: elastic
    password: 1234567890
    index: es_index
    searchSize: 1000
    version: 6.8.11

连接es

使用了这个类

RestTemplate restTemplate;
header

其中name和password就是配置中的

public HttpHeaders header() {
    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.setContentType(MediaType.APPLICATION_JSON);
    httpHeaders.set("authorization", "Basic " + (new BASE64Encoder().encode((name + ":" + password).getBytes()).replaceAll("\n", "")));
    return httpHeaders;
}
查询

esUrl 是es的地址

index 就是索引

param 就是参数

response.getBody() 返回的是一个json对象 自己根据内容解析一下即可

public JSONObject search(JSONObject param) {
    String url = esUrl + "/" + index + "/_search";
    HttpEntity httpEntity = new HttpEntity(param.toJSONString(), header());
    ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JSONObject.class);
    return response.getBody();
}
删除
public void deleteById(String id) {
    String url = esUrl + "/" + index + "/_doc/" + id;
    restTemplate.delete(url);
}
更新
public JSONObject updateEsById(String id, JSONObject param) {
    String url =  esUrl + "/" + index + "/_doc/" + id + "/_update";
    HttpEntity httpEntity = new HttpEntity(param.toJSONString(), header());
    ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JSONObject.class);
    return response.getBody();

}
保存
public void saveById(String id, JSONObject json) {
    String url = esUrl + "/" + index + "/_doc/" + id;
    HttpEntity httpEntity = new HttpEntity(json.toJSONString(), header());
    ResponseEntity<JSONObject> response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JSONObject.class);
    JSONObject ret = response.getBody();
}
补充

不同的版本是有差异的,具体可以在使用中根据报错进行调整

举例

es6.*版本的更新语句是这样的

esUrl + "/" + index + "/_doc/" + id + "/_update";

es7.*的是这样的

 esUrl + "/" + index + "/_update/" + id + "?refresh=true"

最后

整体的就是这样,其实主要是是restTemplate的使用,相对于es客户端使用比较简单一下(个人认为,主要是es用的不是很多)

如果大家有疑问和需要我可以后期就行补充

Spring Boot是一个开箱即用的框架,可以简化Java应用程序的开发。而Elasticsearch是一个开源的搜索引擎,具有强大的全文搜索和分析能力。 要在Spring Boot中操作Elasticsearch,首先需要在项目的依赖管理中增加Elasticsearch的相关依赖,例如elasticsearchspring-boot-starter-data-elasticsearch。 在配置文件(application.properties或application.yml)中,需要设置Elasticsearch连接信息,如主机名、端口号和索引名称等。可以通过spring.data.elasticsearch.cluster-nodesspring.data.elasticsearch.cluster-name属性来进行配置。 接下来,在Java代码中,可以使用Spring Data Elasticsearch提供的API来进行操作。可以通过注解方式定义实体类和索引,使用ElasticsearchRepository来实现数据的增删改查操作。 通过ElasticsearchRepository的save方法可以将数据保存到Elasticsearch中。通过findById方法可以根据ID查询数据,通过search方法可以进行全文搜索等。 在使用Elasticsearch的时候,还可以进行索引的创建和删除操作。可以使用IndicesAdminClient提供的API来调用创建和删除索引的操作。 此外,Elasticsearch还提供了丰富的搜索功能,如分页查询、排序查询、聚合查询等。可以通过QueryBuilder和SearchRequestBuilder等类来构建复杂的查询语句。 总之,Spring BootElasticsearch的结合可以提供一个简便而强大的搜索引擎应用程序开发框架。开发人员可以通过简单的配置和API调用来实现数据的存储、检索和分析功能,大大简化了开发过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值