springboot java 項目連接es
介紹
小項目,沒有引用es客戶端,直接使用的http的方式進行連接的,方式比較簡單,但是依賴較少,一個比較小的項目,部署方便
業(yè)務也很簡單就是把數據庫中的數據讀到es中,然后在做幾個接口讀es中的數據
版本
es版本 6.8.11
springboot 2.6.3
java 8
依賴
只有web和mysql的依賴,別的不需要
這里就不作介紹了,如果有需要可以私信我
開始
配置
這個是放到y(tǒng)ml文件中的配置 就是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用的不是很多)文章來源:http://www.zghlxwxcb.cn/news/detail-827524.html
如果大家有疑問和需要我可以后期就行補充文章來源地址http://www.zghlxwxcb.cn/news/detail-827524.html
到了這里,關于springboot java 項目連接es的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!