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