ドメイン内に約 6 つの異なるエンティティを持つシステムがあります。これは Nhibernate を使用した C# winforms アプリです。MSSQL サーバー。+- 5 ~ 10 ユーザー。
機能要求の 1 つは、ユーザーが「Google のような」柔軟性 (つまり、構造化されていない) でこれらすべてのエンティティを入力および検索できる単一の検索バーを用意することです。私が実装を考えることができる最善の方法は、オブジェクトが表すすべてのフィールドのテキストも保持するすべてのドメイン オブジェクトに clob フィールドを含めることです。私のグローバル検索は、 clob フィールドで同様の検索を行うだけです。
これは 1. 維持する使命 (つまり、すべてのオブジェクト フィールドを clob フィールド内に格納し、変更ごとに更新する必要がある) のように思えます。 2. ひどくスケーリングする可能性があります。システムが成長するにつれて、LIKE 検索はますます遅くなり、システムに負担がかかると確信しています。
システムは大規模になることはありません。1 つのテーブルに 10,000 を超えるレコードが格納されているとは驚きですが、それを当てにするのは好きではありません。
データセットにインデックスを付けることで機能する Lucene.NET のようなプロジェクトについて読んだことがありますが、検索は「ライブ」ではなく、最後のインデックスでの検索になります。
他の人はどのようにこの問題に取り組んだのでしょうか?
ありがとう!!