Java操作ElasticSearch

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

} 



![在这里插入图片描述](https://img-blog.csdnimg.cn/06e16e8c20404526b7e8f483201f3313.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01vYXN0QWxs,size_16,color_FFFFFF,t_70)  

![在这里插入图片描述](https://img-blog.csdnimg.cn/6875b6adfcf542469692d7cd8b51d213.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01vYXN0QWxs,size_16,color_FFFFFF,t_70)



#### [](
)批量插入数据:



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

} 



![在这里插入图片描述](https://img-blog.csdnimg.cn/0f2c37cb17f9479ca2130be37c965f28.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01vYXN0QWxs,size_16,color_FFFFFF,t_70)



[](
)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();

} 



![在这里插入图片描述](https://img-blog.csdnimg.cn/714e3d9cab204a28b776dbaf75bcb5b0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01vYXN0QWxs,size_16,color_FFFFFF,t_70)  

![在这里插入图片描述](https://img-blog.csdnimg.cn/2def1a3672f74bd19ad0c454d520f29a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01vYXN0QWxs,size_16,color_FFFFFF,t_70)



[](
)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();

} 



![在这里插入图片描述](https://img-blog.csdnimg.cn/3d183cb2f5c44753bd7012779ea5e70b.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01vYXN0QWxs,size_16,color_FFFFFF,t_70)



[](
)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();

} 



![在这里插入图片描述](https://img-blog.csdnimg.cn/f562b32f881a4278b6d84170e48acd64.png)



#### [](
)批量删除:



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

} 



![在这里插入图片描述](https://img-blog.csdnimg.cn/703555a4dfdb49bdae053ddecf999e42.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01vYXN0QWxs,size_16,color_FFFFFF,t_70)



[](
)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());

// }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值