maven
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.12.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.12.1</version>
</dependency>
config(创建 es 客户端)
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ElasticSearchClientConfig {
@Bean
public RestHighLevelClient restHighLevelClient() {
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));
return client;
}
}
添加数据
import com.alibaba.fastjson.JSON;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/es")
public class ESController {
@Autowired
private RestHighLevelClient restHighLevelClient;
@RequestMapping("/add")
public String add(@RequestBody Map<String, Object> data) throws Exception {
IndexRequest request = new IndexRequest("estest");
request.timeout("1s");
request.source(JSON.toJSONString(data), XContentType.JSON);
IndexResponse indexResponse = restHighLevelClient.index(request, RequestOptions.DEFAULT);
return indexResponse.status() + "";
}
}
![添加数据](https://i-blog.csdnimg.cn/blog_migrate/bc38b34a72a72aba7cd8f1ab6d067f4e.png)
查询
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.RangeQueryBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/es")
public class ESController {
@Autowired
private RestHighLevelClient restHighLevelClient;
@RequestMapping("/getAll")
public String getAll() throws Exception {
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.from(0);
sourceBuilder.size(10);
sourceBuilder.fetchSource(new String[]{"date", "weather"}, new String[]{});
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("date");
rangeQueryBuilder.gte("2021-05-11T00:00:00Z");
rangeQueryBuilder.lte("2021-05-12T23:59:59Z");
BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
boolBuilder.must(rangeQueryBuilder);
sourceBuilder.query(boolBuilder);
FieldSortBuilder fieldSortBuilder = SortBuilders.fieldSort("date").order(SortOrder.DESC);
sourceBuilder.sort(fieldSortBuilder);
SearchRequest request = new SearchRequest("estest");
request.source(sourceBuilder);
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
return response.toString();
}
}
![查询](https://i-blog.csdnimg.cn/blog_migrate/00b9b55644f1c654663e835ad26d2cf3.png)
修改
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/es")
public class ESController {
@Autowired
private RestHighLevelClient restHighLevelClient;
@RequestMapping("/update")
public String update(@RequestBody Map<String, Object> data) throws Exception {
UpdateRequest updateRequest = new UpdateRequest("estest", "UWgxXnkB-vUDKYMlMQTa");
updateRequest.doc(data);
UpdateResponse response = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
return response.status() + "";
}
}
![修改](https://i-blog.csdnimg.cn/blog_migrate/822c0aa695623150681ef1cbaea68e21.png)
删除
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/es")
public class ESController {
@Autowired
private RestHighLevelClient restHighLevelClient;
@RequestMapping("/delete")
public String delete() throws Exception {
DeleteRequest deleteRequest = new DeleteRequest("estest", "UWgxXnkB-vUDKYMlMQTa");
deleteRequest.timeout("1s");
DeleteResponse deleteResponse = restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);
return deleteResponse.status() + "";
}
}