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