springboot項目,某日同僚說,這個接口的資料不插mysql了,存到es裡面了,改一下吧,什麼是es?怎麼改?什麼是es我就不寫了,直接來代碼吧
1、檢視es版本
怎麼檢視你的es版本,通路http://ip:port/ 換成你自己的,如果有賬密的會讓你輸入賬密,裡面的number就是版本号
2.根據版本導入依賴
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.5.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.5.2</version>
</dependency>
3.寫單測
import com.alibaba.fastjson.JSON;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.junit.Test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: lxx
* @Date: 2022/7/13 上午10:00
*/
public class TestE {
//查詢
@Test
public void highClient() throws IOException {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("USER_NAME", "PASSWORD")); //es賬号密碼(預設使用者名為elastic)
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("IP", 9200, "http"))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
}));
SearchRequest request = new SearchRequest("INDEX_NAME");
request.source().query(QueryBuilders.matchQuery("user_id","000UC020000130481"));
// request.source().query(QueryBuilders.matchAllQuery());
//發起請求,得到響應結果
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
//輸出響應結果
System.out.println(JSON.toJSONString(response));
}
//插入
@Test
public void testInsert() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("USER_NAME", "PASSWORD")); //es賬号密碼(預設使用者名為elastic)
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("IP", 9200, "http"))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
}));
IndexRequest request = new IndexRequest("INDEX","TYPE","IP");
Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("age", "10");
jsonMap.put("class_name", "2");
jsonMap.put("teacher", "Elly");
request.source(jsonMap);
IndexResponse response = null;
try {
response = client.index(request, RequestOptions.DEFAULT);
if(response.getResult().name().equalsIgnoreCase("created")){
System.out.println("OK");
}else {
System.out.println("ERROR");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意把裡面的相關資訊改成你自己的啊,ps我連結es的版本是6.5.2如果你的版本,由于版本差太多代碼可能也會無效的。