Lucene.Net を使用する際のベスト プラクティスは何ですか? または、lucene.net の適切な使用例はどこにありますか?
5 に答える
Lucene を使用する場合は、A から Z までをカバーする優れた本を購入します。Lucene の学習曲線は非常に急勾配です (私の意見では)。重要なのは、検索方法を知ることだけではありません。インデックスを作成することも重要です。基本的な検索を行うのは簡単ですが、何百万ものデータ レコードで構成されるインデックスを作成し、それを超高速で検索することは可能ですが、かなり困難です。それを学ぶチュートリアルはありません。
Michael McCandless、Erik Hatcher、Otis Gospodnetić によるLucene in Action, Second Editionをお勧めします。Lucene.NET ではなく Lucene 用に書かれていますが、用語と API は基本的に同じであるため、問題にはなりません。
ただし、簡単に試してみたい場合は、このサイトを読むことができます。名前がすべてを物語っています:-)
データが巨大で、読み取りに超高速の応答時間が必要な場合は、Lucene.NETを頻繁に使用します。通常、検索が必要なデータと、残りの詳細を含むデータベーステーブルに結果をマッピングできるようにするためのキーを使用します。これにより、過去の参加を確認しているユーザー(この場合)を検索できます。これは、ユーザー名の検索だけでなく、そのユーザーの他のインスタンスが存在するかどうかを見つけるためにさまざまな詳細を繰り返す検索です(形式は異なりますが)。この例では、ユーザーID(1つのシステムから)、別のシステムからのID、おそらくサプライヤーシステムからのID、フラッシュCookie GUID、サイトCookie GUIDなどを探します。1つの識別子が見つかると、ユーザーの他のインスタンスについては、その識別子の他のインスタンスを探します。これにより、ユーザーのエントリを多くのシステムの1つに重複排除できます(どのシステムへの参加も24時間に1回しか許可されていないため)。SQLでは、このアルゴリズム(私は漠然としていました)は永遠にかかります!Lucene.NETでは、1秒もかかりません。Luceneには、SQLServerよりもはるかに多くの検索の可能性があります。それが嫌いなのは、インデックスへの書き込みまたはインデックスの更新です。これは通常、仕事として行われます...一度に。ただし、インデックスにリアルタイムで更新する必要がある場合は、ロックされた方法で書き込まれるように、巧妙なコードを作成する必要があります(シングルトンでのキューイングを考えてください)。そうしないと、コードがオーバーラップして爆発します。NETそれは1秒未満かかります。Luceneには、SQLServerよりもはるかに多くの検索の可能性があります。それが嫌いなのは、インデックスへの書き込みまたはインデックスの更新です。これは通常、仕事として行われます...一度に。ただし、インデックスにリアルタイムで更新する必要がある場合は、ロックされた方法で書き込まれるように、巧妙なコードを作成する必要があります(シングルトンでのキューイングを考えてください)。そうしないと、コードがオーバーラップして爆発します。NETそれは1秒未満かかります。Luceneには、SQLServerよりもはるかに多くの検索の可能性があります。それが嫌いなのは、インデックスへの書き込みまたはインデックスの更新です。これは通常、仕事として行われます...一度に。ただし、インデックスにリアルタイムで更新する必要がある場合は、ロックされた方法で書き込まれるように、巧妙なコードを作成する必要があります(シングルトンでのキューイングを考えてください)。そうしないと、コードがオーバーラップして爆発します。
私の本( ASP.NET Social Networking )でLucene.NETの使用法について説明していますが、ここで多くのヘルプを見つけることができます。
Lucene.NET の問題点は、標準 (Java) Lucene のようなアクティブなコミュニティがないことです。そのため、常に古いバージョンの Lucene を効果的に実行しているようなものです。私たちは .NET を好みますが、この理由から Java バージョンの Lucene を使用することにしました。Solr も使用する場合、統合は非常に簡単です。
Simon Green は、彼の NHibernate 実装で動作するように Lucene.Net をどのようにセットアップしたかについて、3 部構成の優れたシリーズを作成しています。第1部ではシリーズを紹介。パート 2とパート 3では、技術的な詳細について説明します。
私のプロジェクトでは NHibernate を使用していませんが、Lucene.Net コード サンプルは非常に有用であることがわかりました。
「Lucene in Action」は、索引付けと検索の方法を学ぶのに最適な本です。高度な検索手法やカスタム アナライザーの作成についても説明します。この本は Java 用ですが、この本を使用して .net での検索とインデックス作成を実装しました。