跳到主要内容
版本:6.1.1

响应式 Elasticsearch 操作

Doubao 中英对照 Reactive Elasticsearch Operations

ReactiveElasticsearchOperations 是使用 ReactiveElasticsearchClient 对 Elasticsearch 集群执行高层命令的入口。

ReactiveElasticsearchTemplate 是 ReactiveElasticsearchOperations 的默认实现。

要开始使用,ReactiveElasticsearchOperations 需要知道要使用的实际客户端。有关客户端及其配置方式的详细信息,请参阅响应式 Rest 客户端。

响应式操作的用法​

ReactiveElasticsearchOperations 让您可以保存、查找和删除领域对象,并将这些对象映射到存储在 Elasticsearch 中的文档。

考虑以下示例:

示例 1. 使用 ReactiveElasticsearchOperations

@Document(indexName = "marvel")
public class Person {

private @Id String id;
private String name;
private int age;
// Getter/Setter omitted...
}
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

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

> Person(id=QjWCWWcBXiLAnp77ksfR, name=Bruce Banner, age=42)
> Person(id=QjWCWWcBXiLAnp77ksfR, name=Bruce Banner, age=42)
> QjWCWWcBXiLAnp77ksfR
> 0
  • 将一个新的 Person 文档插入 marvel 索引。id 在服务器端生成并设置到返回的实例中。

  • 在 marvel 索引中查找 id 匹配的 Person。

  • 在 marvel 索引中删除从给定实例提取的、id 匹配的 Person。

  • 统计 marvel 索引中文档的总数。

  • 不要忘记 subscribe()。