3、删除索引
//删除索引
public static void Index_Delete() throws Exception{
//创建ES客户端
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”,9200,“http”))
);
// 查询索引
DeleteIndexRequest request = new DeleteIndexRequest(“user”);
AcknowledgedResponse response = esClient.indices().delete(request, RequestOptions.DEFAULT);
//响应状态
System.out.println(response.isAcknowledged());
//关闭ES客户端
esClient.close();
}
4、创建文档(插入数据)
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】 浏览器打开:qq.cn.hn/FTf 免费领取
public static void main(String[] args) throws Exception {
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”, 9200, “http”))
);
// 插入数据
IndexRequest request = new IndexRequest();
request.index(“user”).id(“1001”);
User user = new User();
user.setName(“zhangsan”);
user.setAge(30);
user.setSex(“男”);
// 向ES插入数据,必须将数据转换位JSON格式
ObjectMapper mapper = new ObjectMapper();
String userJson = mapper.writevalueAsString(user);
request.source(userJson, XContentType.JSON);
IndexResponse response = esClient.index(request, RequestOptions.DEFAULT);
System.out.println(response.getResult());
esClient.close();
}
批量插入数据:public static void main(String[] args) throws Exception {
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”, 9200, “http”))
);
// 批量插入数据
BulkRequest request = new BulkRequest();
request.add(new IndexRequest().index(“user”).id(“1001”).source(XContentType.JSON, “name”, “zhangsan”, “age”,30,“sex”,“男”));
request.add(new IndexRequest().index(“user”).id(“1002”).source(XContentType.JSON, “name”, “lisi”, “age”,30,“sex”,“女”));
request.add(new IndexRequest().index(“user”).id(“1003”).source(XContentType.JSON, “name”, “wangwu”, “age”,40,“sex”,“男”));
request.add(new IndexRequest().index(“user”).id(“1004”).source(XContentType.JSON, “name”, “wangwu1”, “age”,40,“sex”,“女”));
request.add(new IndexRequest().index(“user”).id(“1005”).source(XContentType.JSON, “name”, “wangwu2”, “age”,50,“sex”,“男”));
request.add(new IndexRequest().index(“user”).id(“1006”).source(XContentType.JSON, “name”, “wangwu3”, “age”,50,“sex”,“男”));
request.add(new IndexRequest().index(“user”).id(“1007”).source(XContentType.JSON, “name”, “wangwu44”, “age”,60,“sex”,“男”));
request.add(new IndexRequest().index(“user”).id(“1008”).source(XContentType.JSON, “name”, “wangwu555”, “age”,60,“sex”,“男”));
request.add(new IndexRequest().index(“user”).id(“1009”).source(XContentType.JSON, “name”, “wangwu66666”, “age”,60,“sex”,“男”));
BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
System.out.println(response.getTook());
System.out.println(response.getItems());
esClient.close();
}
5、修改文档
将上面的数据中的性别改成女
public static void main(String[] args) throws Exception {
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”, 9200, “http”))
);
// 修改数据
UpdateRequest request = new UpdateRequest();
request.index(“user”).id(“1001”);
request.doc(XContentType.JSON, “sex”, “女”);
UpdateResponse response = esClient.update(request, RequestOptions.DEFAULT);
System.out.println(response.getResult());
esClient.close();
}
6、普通的查询文档
public static void main(String[] args) throws Exception {
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”, 9200, “http”))
);
// 查询数据
GetRequest request = new GetRequest();
request.index(“user”).id(“1001”);
GetResponse response = esClient.get(request, RequestOptions.DEFAULT);
System.out.println(response.getSourceAsString());
esClient.close();
}
7、删除文档
public static void main(String[] args) throws Exception {
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”, 9200, “http”))
);
DeleteRequest request = new DeleteRequest();
request.index(“user”).id(“1001”);
DeleteResponse response = esClient.delete(request, RequestOptions.DEFAULT);
System.out.println(response.toString());
esClient.close();
}
批量删除:public static void main(String[] args) throws Exception {
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”, 9200, “http”))
);
// 批量删除数据
BulkRequest request = new BulkRequest();
request.add(new DeleteRequest().index(“user”).id(“1001”));
request.add(new DeleteRequest().index(“user”).id(“1002”));
request.add(new DeleteRequest().index(“user”).id(“1003”));
BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
System.out.println(response.getTook());
System.out.println(response.getItems());
esClient.close();
}
8、高级查询文档
public static void main(String[] args) throws Exception {
RestHighLevelClient esClient = new RestHighLevelClient(
RestClient.builder(new HttpHost(“localhost”, 9200, “http”))
);
// 1. 查询索引中全部的数据
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// request.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()));
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// 2. 条件查询 : termQuery
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// request.source(new SearchSourceBuilder().query(QueryBuilders.termQuery(“age”, 30)));
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// 3. 分页查询
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
// // (当前页码-1)*每页显示数据条数
// builder.from(2);
// builder.size(2);
// request.source(builder);
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// // 4. 查询排序
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
// //
// builder.sort(“age”, SortOrder.DESC);
// request.source(builder);
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// // 5. 过滤字段
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
// //
// String[] excludes = {“age”};
// String[] includes = {};
// builder.fetchSource(includes, excludes);
// request.source(builder);
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// // 6. 组合查询
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// SearchSourceBuilder builder = new SearchSourceBuilder();
// BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// //boolQueryBuilder.must(QueryBuilders.matchQuery(“age”, 30));
// //boolQueryBuilder.must(QueryBuilders.matchQuery(“sex”, “男”));
// //boolQueryBuilder.mustNot(QueryBuilders.matchQuery(“sex”, “男”));
// boolQueryBuilder.should(QueryBuilders.matchQuery(“age”, 30));
// boolQueryBuilder.should(QueryBuilders.matchQuery(“age”, 40));
// builder.query(boolQueryBuilder);
// request.source(builder);
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// // 7. 范围查询
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// SearchSourceBuilder builder = new SearchSourceBuilder();
// RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery(“age”);
// rangeQuery.gte(30);
// rangeQuery.lt(50);
// builder.query(rangeQuery);
// request.source(builder);
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// 8. 模糊查询
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// SearchSourceBuilder builder = new SearchSourceBuilder();
// builder.query(QueryBuilders.fuzzyQuery(“name”, “wangwu”).fuzziness(Fuzziness.TWO));
// request.source(builder);
// SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);
// SearchHits hits = response.getHits();
// System.out.println(hits.getTotalHits());
// System.out.println(response.getTook());
// for ( SearchHit hit : hits ) {
// System.out.println(hit.getSourceAsString());
// }
// // 9. 高亮查询
// SearchRequest request = new SearchRequest();
// request.indices(“user”);
// SearchSourceBuilder builder = new SearchSourceBuilder();



