I CQRS シン読み取りレイヤーを使用して、非正規化リスト/レポート データを UI に提供します。
アプリケーションの一部で、ユーザーがデータをフィルタリングできるように検索ボックスを提供したいと考えています。
Lucene.NET は、以前に実装したことがあり、非常に満足しているため、現在選択している全文検索エンジンです。
しかし、検索側は CQRS のどこに適合するのでしょうか?
2 つのオプションが表示されますが、おそらくもっと多くのオプションがあります。
1] 私のコントローラーは、検索文字列を検索レイヤー (Lucene.NET) に渡すことができます。検索レイヤーは、CQRS 読み取りレイヤーに渡すことができる ID のリストを返します。読み取りレイヤーはこれらの ID を受け取り、それらを WHERE ID IN (1,2,3) 句にまとめて、最終的に DataTable または IEnumerable をコントローラーに返します。
List<int> ids = searchLayer.SearchCustomers("searchString");
result = readLayer.GetCustomers(ids);
2]私の薄い読み取りレイヤーには、コード化された検索を直接含めることができるので、呼び出すだけです
readLayer.GetListOfCustomers("search string", page, page1);