リアクティブ型 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 はサーバー側で生成され、返されるインスタンスに設定されます。
2marvel インデックスで Person と一致する id を検索します。
3marvel インデックス内の、指定されたインスタンスから抽出された、一致する id を持つ Person を削除します。
4marvel インデックス内のドキュメントの総数をカウントします。
5subscribe() を忘れないでください。