アルファベット順に並べ替えられたこの巨大なインデックスがあり、特定の用語の行を取得する必要があります。ファイルを 1 行ずつ読んで正しい用語が得られたかどうかを確認するのは効率的ではないように思えます。そのため、インデックスのサイズが大きくなります (英語のウィキペディア コーパスにインデックスを付けました)。
そのため、行でバイナリ検索を行う方法を探しています。LineNumberReader を使用して行数を効率的に取得していますが、ファイルから n 番目の行を取得する効率的な解決策はないようです。
n 番目の行になるまで行を読み、それが正しい用語であるかどうかを確認し、バイナリ検索アルゴリズムに従ってアクションを実行する (おそらくスキップした行が必要なため、行を再度読み取る) 方が効率的かどうか疑問に思っています。次に、用語を1行ずつチェックするだけですか?
その他の提案も大歓迎です!
検索する用語のセットに応じて、一連の行を取得する必要があることに注意してください。