MS SQL データベースがあり、次のvarchar
ようなクエリを実行したいフィールドが ありますwhere name like '%searchTerm%'
。しかし、現時点では、SQL エンタープライズの全文索引を使用しても遅すぎます。
Lucene .Net
誰かが私の状況をどのように助けることができるか説明できますか? インデクサーはどのように機能しますか? クエリはどのように機能しますか?
私のために何が行われ、私は何をしなければなりませんか?
MS SQL データベースがあり、次のvarchar
ようなクエリを実行したいフィールドが ありますwhere name like '%searchTerm%'
。しかし、現時点では、SQL エンタープライズの全文索引を使用しても遅すぎます。
Lucene .Net
誰かが私の状況をどのように助けることができるか説明できますか? インデクサーはどのように機能しますか? クエリはどのように機能しますか?
私のために何が行われ、私は何をしなければなりませんか?
この男 (Michael Neel) がユーザー グループ ミーティングで Lucene に参加しているのを見ました。事実上、(Lucene を使用して) インデックス ファイルを作成すると、必要なもの (データベース行など) へのポインターが含まれます。
http://code.google.com/p/vinull/source/browse/#svn/Examples/LuceneSearch
非常に速く、柔軟で強力です。
Lucene の優れている点は、Lucene を使用してさまざまなもの (ファイル、画像、データベース行) を独自のインデックスにまとめてインデックスを作成し、それをビジネス ドメインに変換できることです。一方、SQL Server では、すべてを SQL にする必要があります。索引付けされます。
彼のスライドが Google コードにあるようには見えません。
この記事(奇妙なことに、Google の検索結果の一番上にあります :) では、Lucene 検索を最適化する方法についてかなり詳しく説明しています。
適切に構成された Lucene は、SQL (2005 年より前) のフルテキスト インデックス検索を簡単に打ち負かします。MS SQL 2005 を使用していて、検索パフォーマンスがまだ遅すぎる場合は、DB の設定を確認することを検討してください。