2009-06-16 10 views

答えて

18

Luceneと一緒に仕事をするなら、私はAからZまでカバーする良い本を買うだろう。Luceneは非常に急な学習曲線を持っている(私の意見では)。 の検索方法を知っているだけでなく、重要なのはです。のインデックス番号です。基本的な検索は簡単ですが、何百万ものデータレコードで構成された索引を作成し、それでも高速検索が可能ですが、かなり難しいです。あなたにそれを学ぶチュートリアルはありません。

Michael McCandless、Erik Hatcher、OtisGospodnetićがLucene in Action, Second Editionをお勧めします。それはLucene.NETではなくLuceneのために書かれていますが、termonologyとapiのものは基本的に同じですから問題はありません。

しかし、すぐに試してみるとすれば、this siteと書くことができます。

+1

私はLucene in Actionの本をレビューしなければなりません。Luceneのすべてのことを学ぶために行くのは良いシングルです!理論的概念のほとんどはLucene.NETに適用されますが、コード実装にはいくつかの創造的思考が必要です! –

+1

ちょうど出てきたLuceneの第2版が出ています。それがLucene.NETに近いかそれ以上のものであれば、最初の版はどんな考えですか? –

9

データが膨大で、読み取りに非常に高速な応答時間が必要な場合は、頻繁にLucene.NETを使用します。私たちは一般的に、検索する必要のあるデータと、キーを残して、結果を他の詳細を持つデータベーステーブルにマップすることができます。これにより、ユーザーの過去の参加状況を調べることができます。これは単なるユーザー名検索ではなく、そのユーザーの他のインスタンスがあるかどうかを調べるためにさまざまな詳細を繰り返し検索する検索です(ただし、別のフォームになっています)。この例では、ユーザID(あるシステムから)、別のシステムのID、サプライヤシステムのID、フラッシュクッキーGUID、サイトクッキーGUIDなどを検索します。その識別子の他のインスタンスを他のインスタンスのユーザーに探します。これにより、ユーザー入力を多くのシステムのうちの1つに(24時間に1回しか許可されないように)システムに取り込むことができます。 SQLでは、この曖昧さ(私はあいまいでした)は永遠に取るでしょう! Lucene.NETでは1秒未満で終わります。 LuceneにはSQL Serverよりも多くの検索可能性があります。それはあなたのインデックスに書き込んだり更新したりしています。これは、通常、仕事として...一度に行われます。しかし、リアルタイムで更新するインデックスに書き込む必要がある場合は、ロックされた方法で書き込まれることを保証するための賢明なコードを書く必要があります(シングルトンを使ってキューイングする)か、コードが重複して爆発します。

私は私の本(ASP.NET Social Networking)でLucene.NETの使用法をカバーしており、多くのヘルプhereを見つけることができます。

1

Lucene.NETとのトラブルは、それが標準(Java)のような活発なコミュニティを持っていないということであるLuceneに - それは、常に効果的に実行されているようなものですLuceneの古いバージョンです。我々は.NETを好むが、我々はこの理由でLuceneのJavaバージョンを使用することに決めた。 Solrを使用する場合は、統合が非常に簡単です。

1

「Lucene in Action」は、索引付けの方法と検索方法を学習するのに最適な本です。高度な検索技術やカスタムアナライザの作成まで網羅しています。この本はJava用ですが...私はこの本を使って.netで検索と索引を実装しました。

1

Simon Greenは、彼のNHibernateの実装で動作するLucene.Netのセットアップ方法について、3部構成の素晴らしいシリーズを持っています。 Part one introduces the seriesPart twoおよびpart threeは、技術的詳細について議論します。

私のプロジェクトでNHibernateを使用していないのにLucene.Netコードサンプルが非常に便利であることがわかりました。