0

インデックスファイルをディレクトリに保存する代わりに、インデックスファイルをBerkeleyDBに保存するチュートリアルを見つけました。なんで?検索性能の向上ですか?

4

1 に答える 1

1

言及されている本Lucene in Action, Second Editionでは、章で Berkeley DB について言及しています9.2 Storing an index in Berkeley DB。前述のように、トランザクション サポートが導入されています。データベース コミットは、新しく変更されたエンティティと、データベースに書き込まれた変更の両方を保存します。エンティティと検索インデックスは常に同期されます。

定義によれば、書き込み中に何かが起こっているため、純粋なディスク書き込みよりも遅くなります。同じことが読書にも当てはまります。データをカスタム形式で保存すると、何らかのペナルティが発生します。ただし、「個人情報マネージャー」に保存されるデータの量はそれほど多くない可能性があり、わずかなペナルティが気付かれない可能性があります (おそらくバックグラウンド ロード?) または、データベース ベースのソリューションによって提供されるトランザクション サポートが受け入れられます。

本からの引用、292ページ。

Chandler プロジェクト ( http://chandlerproject.org ) は、オープン ソースの個人情報マネージャーを構築するための継続的な取り組みです。Chandler は、電子メール、インスタント メッセージ、予定、連絡先、タスク、メモ、Web ページ、ブログ、ブックマーク、写真など、さまざまな種類の情報を管理することを目的としています。単なるアプリケーションではなく、拡張可能なプラットフォームです。検索は、Chandler インフラストラクチャにとって重要なコンポーネントです。
[...]
Chandler の基盤となるリポジトリは、リソース記述フレームワーク (RDF) と連想データベースに着想を得て、従来のリレーショナル データベースとは大きく異なる方法で Oracle の Berkeley DB を使用しています。Andi は、基礎となるストレージ メカニズムとして Berkeley DB を使用する Lucene ディレクトリ実装を作成しました。データベースに Lucene インデックスを持つことの興味深い副作用は、それが提供するトランザクション サポートです。Andi は彼の実装を Lucene プロジェクトに寄贈し、contrib ディレクトリの db/bdb 領域に維持されています。

于 2013-10-06T09:49:29.563 に答える