响应式 Elasticsearch 操作
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
| 1 | 将一个新的 Person 文档插入到 marvel 索引中。id 由服务器端生成并设置到返回的实例中。 |
| 2 | 在marvel索引中查找具有匹配id的Person。 |
| 3 | 在marvel索引中,删除从给定实例中提取的与id匹配的Person。 |
| 4 | 统计 marvel 索引中的文档总数。 |
| 5 | 别忘了subscribe()。 |