Reactive Elasticsearch Operations

ReactiveElasticsearchOperations 是使用 ReactiveElasticsearchClient 对 Elasticsearch 集群执行高级命令的网关。 ReactiveElasticsearchTemplateReactiveElasticsearchOperations 的默认实现。 要开始,`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 在服务器端生成并设置到返回的实例中。
2 使用 marvel 索引中匹配的 id 查找 Person
3 使用从给定实例中提取的 ID,删除 marvel 索引中匹配的 id
4 统计 marvel 索引中的文档总数。
5 Don’t forget to subscribe().