2012-03-15 3 views
2

私はこの質問が何度も何度も繰り返し尋ねられていることを知っていますが、私はすべての答えが私を満足させることはできません。ほとんどのソリューションでは、インデックス全体がメモリに収まると仮定し、Javaのシリアライゼーションによってディスクに格納できます。インデックスが必要な場合は、インデックス全体をメモリにロードする必要があります。このようなソリューション: solution 1,solution 2しかし、私たちが知っているように、この仮定は必ずしも真実ではありません。逆さまの文書インデックスがメモリに収まらない場合、ディスクに格納するにはどうすればよいですか?逆文書インデックスをディスクに保存するにはどうすればよいですか?

Javaで解決策を教えていただければ幸いです。

+0

構造はどのように実装されていますか?索引の用語も保管するには大きすぎますか、または文書リストのみがありますか?メモリ使用量をゼロに近づけたい、またはディスクアクセスを減らすためにメモリに「頻繁」な用語を保持する構造を使用したいですか?このすべてが、索引の保管方法およびアクセス方法に影響します。 –

答えて

0

私は試してみましたJDBM3これはツリーとハッシュコレクションをサポートしています。唯一の要件は、各キーまたはエントリがメモリに収まることです。

非常に大きなエントリがある場合は、各セクションをファイルとして保存することをお勧めします。このファイルは、データの一部を抽出するためにメモリマップできます。ルックアップテーブルでは、ファイル名にキーを格納できます。 (または、ファイルにキーの名前を付ける)

関連する問題