Spring集成ES

RestAPI

ES官方提供的java语言客户端用以组装DSL语句,再通过http请求发送给ES

RestClient初始化

引入依赖

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
初始化RestHighLevelClient
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
        HttpHost.create("http://192.168.150.101:9200")
));

RestClient操作索引

创建索引

创建一个CreateIndexRequest对象

在对象中添加JSON格式的Mapping映射参数

client.indices()方法会返回封装了所有索引库操作的一个客户端

这里我们使用

client.indices().create(request, RequestOptions.DEFAULT);

删除索引

创建一个DeleteIndexRequest对象

调用delete方法

client.indices().delete(request, RequestOptions.DEFAULT);

查询索引是否存在

创建一个GetIndexRequest对象

调用exist方法

client.indices().exists(request, RequestOptions.DEFAULT);

RestClient操作文档

查询文档

创建一个GetRequest对象

调用get方法

 GetResponse response = client.get(request, RequestOptions.DEFAULT);
 String json = response.getSourceAsString();

删除文档

创建一个DeleteRequest对象

调用delete方法

client.delete(request, RequestOptions.DEFAULT);

修改文档

如果id存在就修改

如果id不存在就新增

创建一个 UpdateRequest对象

调用update方法

client.update(request, RequestOptions.DEFAULT);

批量导入文档

创建BulkRequest对象,可以添加以下请求

  • IndexRequest,也就是新增
  • UpdateRequest,也就是修改
  • DeleteRequest,也就是删除

在对象中添加多个不同请求,最后调用bulk方法

request.add(new IndexRequest("items").id("1").source("json doc1", XContentType.JSON));
    request.add(new IndexRequest("items").id("2").source("json doc2", XContentType.JSON));
client.bulk(request, RequestOptions.DEFAULT);
  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Spring集成Elasticsearch实现增删改查的示例代码: 1. 添加依赖 在`pom.xml`中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> ``` 2. 配置Elasticsearch连接信息 在`application.yml`中添加以下配置信息: ```yaml spring: data: elasticsearch: cluster-nodes: localhost:9300 ``` 3. 定义实体类 定义一个实体类,如下所示: ```java @Document(indexName = "my_index", type = "my_type") public class MyEntity { @Id private String id; private String name; private Integer age; // 省略getter/setter方法 } ``` 4. 定义Repository 定义一个Repository接口,继承`ElasticsearchRepository`,如下所示: ```java public interface MyEntityRepository extends ElasticsearchRepository<MyEntity, String> { } ``` 5. 实现增删改查操作 在Service层中注入`MyEntityRepository`,并实现相应的增删改查操作,如下所示: ```java @Service public class MyEntityService { @Autowired private MyEntityRepository repository; public void save(MyEntity entity) { repository.save(entity); } public void delete(String id) { repository.deleteById(id); } public void update(MyEntity entity) { repository.save(entity); } public List<MyEntity> search(String name) { NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder(); builder.withQuery(QueryBuilders.matchQuery("name", name)); Iterable<MyEntity> searchResult = repository.search(builder.build()); List<MyEntity> result = new ArrayList<>(); searchResult.forEach(result::add); return result; } } ``` 这里实现了四个方法: - `save`:新增或更新数据 - `delete`:删除数据 - `update`:更新数据 - `search`:根据名称查询数据 以上就是Spring集成Elasticsearch实现增删改查的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值