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());
// }