springboor操作es 索引以及文档操作

索引操作

创建索引

    @Autowired
    @Qualifier("restHighLevelClient")
    private RestHighLevelClient client;
    @Test
    void contextLoads() throws IOException {
        //创建索引请求
        CreateIndexRequest request = new CreateIndexRequest("jie_index");
        //执行
        CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
        System.out.println(createIndexResponse);
    }

获得索引

    //获得索引 判断是否存在
    @Test
    void test1() throws IOException {
        GetIndexRequest request = new GetIndexRequest("jie_index");
        boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
        System.out.println(exists);
    }

删除索引

    @Test
    void test2() throws IOException {
        DeleteIndexRequest request=new DeleteIndexRequest("jie_index");
        AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);
        System.out.println(delete.isAcknowledged());
    }

文档操作

添加数据

@Test
    public void test2() throws IOException {
        User user = new User("jie",18);
        IndexRequest request=new IndexRequest("jie_index");
        //设置id
        request.id("1");
        //将数据放进去
        request.source(JSON.toJSONString(user), XContentType.JSON);
        IndexResponse index = client.index(request, RequestOptions.DEFAULT);
        System.out.println(index);
        System.out.println(index.status());//返回状态 如created,updated
    }


成功添加了数据

获得文档数据

    @Test
    public void test4() throws IOException{
        GetRequest request = new GetRequest("jie_index", "1");
        GetResponse response = client.get(request, RequestOptions.DEFAULT);
        //打印文档内容
        System.out.println(response.getSourceAsString());
    }

结果:

更新操作

    @Test
    public void test5() throws IOException {
        UpdateRequest request = new UpdateRequest("jie_index", "1");
        User user = new User("修改的jie",20);
        request.doc(JSON.toJSONString(user),XContentType.JSON);
        UpdateResponse update = client.update(request, RequestOptions.DEFAULT);
        System.out.println(update.status());
    }

删除操作

批量操作

    @Autowired
    @Qualifier("restHighLevelClient")
    private RestHighLevelClient client;
    @Test
    public void test() throws IOException {
        BulkRequest bulkRequest = new BulkRequest();
        bulkRequest.timeout("10s");
        ArrayList<User> users = new ArrayList<>();
        users.add(new User("jie1",10));
        users.add(new User("jie2",11));
        users.add(new User("jie3",12));
        users.add(new User("jie4",13));
        users.add(new User("jie5",14));
        for (User user : users) {
            bulkRequest.add(
                    new IndexRequest("jie_index")
                    .source(JSON.toJSONString(user),XContentType.JSON)
            );
        }
        BulkResponse bulk = client.bulk(bulkRequest, RequestOptions.DEFAULT);
        System.out.println(bulk.hasFailures());
    }

注意最后是输出是否失败 输出false说明成功了

条件查询

    //查询
    @Test
    void test2() throws IOException {
        SearchRequest request = new SearchRequest("jie_index");
        SearchSourceBuilder builder = new SearchSourceBuilder();
        //构建精确匹配规则
        TermQueryBuilder termQueryBuilder = new TermQueryBuilder("name","jie1");
        builder.query(termQueryBuilder);
        builder.timeout(new TimeValue(10, TimeUnit.SECONDS));
        request.source(builder);
        SearchResponse search = client.search(request, RequestOptions.DEFAULT);
        System.out.println(JSON.toJSONString(search.getHits()));
    }
posted @ 2021-09-21 15:55  一个经常掉线的人  阅读(256)  评论(0)    收藏  举报