响应式 Elasticsearch 操作
ReactiveElasticsearchOperations
是通过 ReactiveElasticsearchClient
对 Elasticsearch 集群执行高级命令的入口。
ReactiveElasticsearchTemplate
是 ReactiveElasticsearchOperations
的默认实现。
要开始使用 ReactiveElasticsearchOperations
,需要了解实际要使用的客户端。有关客户端及其配置的详细信息,请参阅 Reactive Rest Client。
响应式操作使用
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
在 marvel 索引中插入一个新的
Person
文档。id
由服务器端生成并设置在返回的实例中。在 marvel 索引中查找具有匹配
id
的Person
。在 marvel 索引中删除具有匹配
id
的Person
,id
从给定的实例中提取。统计 marvel 索引中的文档总数。
别忘了调用 subscribe()。