Elasticsearch 实战(五、整合到 Java 项目)

本文档介绍了如何在Spring Boot项目中配置并使用Elasticsearch官方的Java REST High Level Client。首先,通过添加相关依赖,创建了一个名为lvshui5u-search的项目。接着,配置了ESConfig类,利用`RestHighLevelClient`初始化连接到本地Elasticsearch服务器。然后,展示了如何存储数据,包括构建`IndexRequest`,设置JSON源数据,并调用`index`方法将数据插入到Elasticsearch的`users`索引。最后,给出了插入操作的返回体。

ES 官方 Java REST Client 文档

创建项目

创建一个 springboot 项目 lvshui5u-search

添加依赖

		<dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.4.2</version>
        </dependency>

配置类

在使用 RestHighLevelClient 实例时需要一个 REST low-level client builder 来帮助构建。

配置类 ESConfig.java

/**
 * @author: lvshui5u
 * @date: 2021/7/30 18:33
 * @describe:
 */
@Configuration
public class ESConfig {

    @Bean
    public RestHighLevelClient esRestClient(){
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("localhost", 9200, "http")));

        return client;
    }

}

localhost 处填写 ES 所在服务器位置

测试

    @Autowired
    private RestHighLevelClient client;

    /**
     * 存储数据
     */
    @Test
    public void indexData() throws IOException {
        // 构建一个 index 请求,指定 index
        IndexRequest indexRequest = new IndexRequest("users");
        // 指定 id,不指定则自动生成
        indexRequest.id("1");
        // 利用工具类生成一条 json 数据
        User user = new User();
        user.setUsername("lvshui5u");
        user.setGender("male");
        user.setAge(22);
        String source = JSON.toJSONString(user);
        // 指定传入数据的 source,并指明格式
        indexRequest.source(source, XContentType.JSON);
        // 使用 client 的 index 方法进行数据插入,并返回返回体
        IndexResponse response = client.index(indexRequest, RequestOptions.DEFAULT);

        System.out.println(response);
    }

    @Data
    static class User{
        String username;
        String gender;
        Integer age;
    }

注:生成 source 的方法有多种,可参考官方文档。

返回体

IndexResponse[index=users,type=_doc,id=1,version=1,result=created,seqNo=0,primaryTerm=1,shards={"total":2,"successful":1,"failed":0}]

搜索操作可参考官方文档,比别人写的清楚多了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值