過去に SQL 2005 と Lucene.NET について質問があったことは知っていますが、2008 年以降、SQL 2005 に多くの変更が加えられたため、長所/短所 (または記事へのリンク) を教えてくれる人がいるかどうか疑問に思っていました。
5 に答える
小規模な展開では、SQL Server FTS の方が管理が容易になります。FTS は DB と統合されているため、RDBMS はインデックスの更新を自動的に処理します。ここでの短所は、DB のレプリケート以外に明確なスケーリング ソリューションがないことです。したがって、スケーリングする必要がない場合は、SQL Server FTS の方がおそらく "安全" です。政治的には、ほとんどのショップは純粋な SQL Server ソリューションに慣れるでしょう。
Lucene 側では、まっすぐな Lucene よりも SOLR を好みます。どちらのソリューションでも、データが変更されたときにインデックスを更新したり、SOLR/Lucene インデックスにデータを自分でマッピングしたりするなど、より多くの作業を自分で行う必要があります。長所は、追加のインデックスを追加することで簡単にスケーリングできることです。これらのインデックスを非常に無駄のない Linux サーバーで実行できるため、ライセンス コストがいくらか削減されます。Lucene/SOLR ルートを使用する場合、DB へのポインターをインデックスに戻すのではなく、必要なすべてのデータをインデックスに直接配置することを目指します。検索できないデータをインデックスに含めることができます。たとえば、事前に作成された HTML または XML をインデックスに格納し、それを検索結果として提供することができます。このアプローチでは、DB がダウンする可能性がありますが、切断されたモードで検索結果を提供することはできます。
SQL Server 2008 と Lucene の直接的なパフォーマンス比較は見たことがありませんが、ぜひ見てみたいものです。
これは役立つかもしれません: https ://blog.stackoverflow.com/2008/11/sql-2008-full-text-search-problems/
SQL Server 2008を個人的に使用したことはありませんが、そのブログエントリに基づくと、全文検索機能は2005年よりも遅いようです。
私たちは両方の全文検索の可能性を使用しますが、私の意見では、それはデータ自体とあなたのニーズに依存します。
私たちはWebサーバーでスケーリングします。したがって、SQLサーバーにそれほど負荷がかからないため、luceneが好きです。
nullから始めて全文検索を行いたい場合は、sql-serverソリューションをお勧めします。これは、結果を取得するのが非常に速いと思うためです。luceneが必要な場合は、開始時にさらに実装する必要があります(また、ある程度の知識を得る必要があります-どうやって)。
留意する必要がある 1 つの考慮事項は、フルテキストの制約に加えて、どのような種類の検索制約があるかということです。lucene が提供できない制約を実行している場合は、ほぼ確実に FTS を使用する必要があります。2008 年の優れた点の 1 つは、FTS と標準の SQL サーバー クエリとの統合が改善されたため、データベースと FT の制約が混在していても、2005 年よりもパフォーマンスが向上するはずです。