Spring Data访问Elasticsearch----Reactive Elasticsearch响应式操作

Spring Data访问Elasticsearch----Reactive Elasticsearch响应式操作

ReactiveElasticsearchOperations是使用ReactiveElasticsearchClient对Elasticsearch集群执行高级命令的网关。
ReactiveElasticsearchTemplate是ReactiveElasticsearchOperations的默认实现。
要开始使用ReactiveElasticsearchOperations,需要了解要使用的实际客户端。有关客户端以及如何配置它的详细信息,请参阅 Reactive Rest Client

一、响应式操作使用

ReactiveElasticsearchOperations允许你保存、查找和删除域对象,并将这些对象映射到存储在Elasticsearch中的文档。

参见以下内容:
例1:使用ReactiveElasticsearchOperations

java 复制代码
@Document(indexName = "marvel")
public class Person {

  private @Id String id;
  private String name;
  private int age;
  // Getter/Setter omitted...
}
java 复制代码
ReactiveElasticsearchOperations operations;

// ...

operations.save(new Person("Bruce Banner", 42))                --------1    
  .doOnNext(System.out::println)
  .flatMap(person -> operations.get(person.id, Person.class))  --------2    
  .doOnNext(System.out::println)
  .flatMap(person -> operations.delete(person))                --------3    
  .doOnNext(System.out::println)
  .flatMap(id -> operations.count(Person.class))               --------4    
  .doOnNext(System.out::println)
  .subscribe();                                                --------5    

1. 将新的Person文档插入marvel索引。id在服务器端生成,并设置到返回的实例中。
2. 在marvel索引中查找id匹配的人。
3. 删除marvel索引中从给定实例中提取的id匹配的Person。
4. 统计marvel索引中的文档总数。
5. 别忘了subscribe()。

上面的代码在控制台上输出以下序列。

text 复制代码
> Person(id=QjWCWWcBXiLAnp77ksfR, name=Bruce Banner, age=42)
> Person(id=QjWCWWcBXiLAnp77ksfR, name=Bruce Banner, age=42)
> QjWCWWcBXiLAnp77ksfR
> 0
相关推荐
风筝在晴天搁浅11 分钟前
hot100 78.子集
java·算法
故事和你911 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
Configure-Handler2 小时前
buildroot System configuration
java·服务器·数据库
:Concerto2 小时前
JavaSE 注解
java·开发语言·sprint
电商API_180079052473 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
一点程序3 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
C雨后彩虹3 小时前
计算疫情扩散时间
java·数据结构·算法·华为·面试
2601_949809593 小时前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
vx_BS813304 小时前
【直接可用源码免费送】计算机毕业设计精选项目03574基于Python的网上商城管理系统设计与实现:Java/PHP/Python/C#小程序、单片机、成品+文档源码支持定制
java·python·课程设计
2601_949868364 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 已签合同实现
java·开发语言·flutter