フルテキスト検索では、Luceneの上にNHibernate 3.1とNHibernate.Searchを使用しています。これまでのところうまくいっていますが、スケーラビリティに問題があります。インデックスの分割にnhibernate.searchを使用したシャーディングの使用
私たちのデータベースでは、いくつかの異なる顧客のデータがあります。各顧客はお互いのデータを見ることができません。これまでのところ、フィルタを使用して解決しましたが、問題はインデックスが大きくなり、クエリを保持する悲観的なロックに問題があります。
Luceneのシャーディング機能を使用して、顧客ごとのインデックスを分割する(すべてのエンティティにこのcustomerIdを持つプロパティがあります)。
誰でもNHibernate Searchでこれを試したことがありますか?
ええと...私は、SessionFactoryのためのDictionary'ishのアプローチを使用することができます - 顧客ごとに異なるsessionfactoriesをインスタンス化すると思います。プロファイル(顧客ごと)が非常に異なる使用法を示しているので、第2レベルのキャッシュをより柔軟に使用できるようになるかもしれません。 – Goblin