1

したがって、アルファベット順に並べられた 70,000 行の辞書ファイルがあります。各行は、翻訳された個別の単語です。そのようなファイルを検索するためのベスト プラクティスとして何をお勧めしますか? ファイルのインデックス化について考えていますが、もっと良い方法があるかもしれません。

4

2 に答える 2

3

まず、Java NIO のメモリ マップ ファイル サポートを使用してメモリ マップを作成します。次に、それを前処理して、新しいエントリが始まるすべてのオフセットを見つけます。最後に、エントリを見つけるバイナリ検索コードを書きます。これは、最も軽量でメモリ効率の高いソリューションになると思います。

Lucene はスキップ リストも採用しています。追加で 16 番目 (またはそれくらい) のエントリごとにメモリ内にキャッシュし、それをバイナリ検索の最初のフェーズで使用できます。次に、実際のファイルに移動して、正確なエントリに焦点を合わせる必要があります。

于 2012-07-07T13:12:35.347 に答える
1

解決策になりそうなプロジェクトはLucene

于 2012-07-07T13:11:03.560 に答える