ES集成Springboot

ES集成Springboot

新建项目Springboot

1.在这里插入图片描述
2.在这里插入图片描述
3.项目建立完之后,检查版本信息
在这里插入图片描述
4.保证es6规范在这里插入图片描述
注意:如果前面没有勾选依赖支持,那就手动引入下面的依赖

<!--es客户端-->
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.6.2</version>
</dependency>

<!--springboot的elasticsearch服务-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

集成代码

1.新建config文件,注入RestHighLevelClient 客户端

@Configuration
public class ElasticSearchClientConfig {
    @Bean
    public RestHighLevelClient restHighLevelClient(){
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(new HttpHost("127.0.0.1",9200,"http"))
        );
        return client;
    }
}

2.测试索引API

@SpringBootTest
class EsApiApplicationTests {
	@Autowired
	@Qualifier("restHighLevelClient")
	public RestHighLevelClient client;
	//测试索引的创建
	@Test
	void testCreateIndex() throws IOException {
		//1创建索引请求
		CreateIndexRequest request= new CreateIndexRequest("cyx_index");
		//2客户端执行请求,请求后获得响应
		CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);
		System.out.println(response);
	}
	//测试索引的是否存在
	@Test
	void testExistIndex() throws IOException {
		GetIndexRequest request= new GetIndexRequest("cyx_index");
		boolean exist = client.indices().exists(request, RequestOptions.DEFAULT);
		System.out.println(exist);
	}
//测试删除索引
	@Test
	void testDeleteIndex() throws IOException {
		DeleteIndexRequest request= new DeleteIndexRequest("test1");
		AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);
		System.out.println(delete.isAcknowledged());
	}
	



}

3.测试文档API

 //测试添加文档
    @Test
    void testAddDocument() throws IOException {
        //1创建对象
        User user=new User("小白",22);
        //2创建请求
        IndexRequest request=new IndexRequest("bai_index");
        //3规则 put /bai_index/_doc/1
        request.id("2");
        request.timeout(TimeValue.timeValueSeconds(1));
//        等同于上一行代码
//        request.timeout("1s");
        //4将数据放到json
        request.source(JSON.toJSONString(user), XContentType.JSON);
        //5客户端发送请求,获取响应结果
        IndexResponse response = client.index(request, RequestOptions.DEFAULT);
        System.out.println(response.toString());
        System.out.println(response.status());
    }
    //测试文档是否存在
    @Test
    void testExistDocument() throws IOException {
        GetRequest request= new GetRequest("bai_index","2");
        boolean exist = client.exists(request, RequestOptions.DEFAULT);
        System.out.println(exist);
    }
    //测试获取文档
    @Test
    void testGetDocument() throws IOException {
        GetRequest request= new GetRequest("bai_index","2");
        GetResponse response = client.get(request, RequestOptions.DEFAULT);
        System.out.println(response.getSourceAsString());//获得文档的内容
        System.out.println(response);//获得全部信息
    }
    //测试修改文档
    @Test
    void testUpdateDocument() throws IOException {
        UpdateRequest request= new UpdateRequest("bai_index","2");
//        设置时间,超过该时间就不执行了
        request.timeout("1s");
        User user = new User("小白撑伞", 18);
        request.doc(JSON.toJSONString(user),XContentType.JSON);
        UpdateResponse response = client.update(request, RequestOptions.DEFAULT);
        System.out.println(response);
        System.out.println(response.status());
    }
    //测试删除文档
    @Test
    void testDeleteDocument() throws IOException {
        DeleteRequest request= new DeleteRequest("小白撑伞","2");
        request.timeout("1s");
        DeleteResponse response = client.delete(request, RequestOptions.DEFAULT);
        System.out.println(response.status());
    }


    //测试添加文档
    @Test
    void testBulkAddDocument() throws IOException {
        BulkRequest request = new BulkRequest();
        request.timeout("1s");

        ArrayList<User> userlist=new ArrayList<User>();
        userlist.add(new User("bai1",5));
        userlist.add(new User("bai2",6));
        userlist.add(new User("bai3",40));
        userlist.add(new User("bai4",25));
        userlist.add(new User("bai5",15));
        userlist.add(new User("bai6",35));
        //批量处理请求   (下面如果不设置id就会随机生成一个id)
        for (int i = 0; i < userlist.size(); i++) {
            request.add(
                    new IndexRequest("bai_index")
                            .id(""+(i+1))
                            .source(JSON.toJSONString(userlist.get(i)),XContentType.JSON)
            );
        }
        BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);
        System.out.println(response.hasFailures());//返回false表示添加成功
    }


    //测试查询文档
    @Test
    void testSearchDocument() throws IOException {
        SearchRequest request = new SearchRequest("bai_index");
        //构建搜索条件
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.highlighter();
        TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "bai1");
        sourceBuilder.query(termQueryBuilder);
        sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));

        request.source(sourceBuilder);
        SearchResponse response = client.search(request, RequestOptions.DEFAULT);
        System.out.println(JSON.toJSONString(response.getHits()));
        System.out.println("=====================");
        for (SearchHit documentFields : response.getHits().getHits()) {
            System.out.println(documentFields.getSourceAsMap());
        }
    }
    ```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值