Reactive Elasticsearch Operations
ReactiveElasticsearchOperations
是使用 ReactiveElasticsearchClient
对 Elasticsearch 集群执行高级命令的网关。
ReactiveElasticsearchTemplate
是 ReactiveElasticsearchOperations
的默认实现。
要开始,`ReactiveElasticsearchOperations`需要了解与之一起工作的实际客户端。有关客户端及其配置方式的详细信息,请参阅Reactive Rest Client。
Reactive Operations Usage
ReactiveElasticsearchOperations
可用于保存、查找和删除域对象,并将这些对象映射到存储在 Elasticsearch 中的文档。
考虑以下事项:
Example 1. Use the 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
<1> 将新 `Person` 文档插入到 _marvel_ 索引中。`id` 在服务器端生成并设置到返回的实例中。 <1> 使用 _marvel_ 索引中匹配的 `id` 查找 `Person`。 <1> 使用从给定实例中提取的 ID,删除 _marvel_ 索引中匹配的 `id`。 <1> 统计 _marvel_ 索引中的文档总数。 <1> Don’t forget to _subscribe()_.