2016-11-23 11 views
2

私は、4行から200文字の間のランダムな文字列のファイルを各行に1つずつ持っています。ファイル内の文字列をすばやく検索できるファイル形式は何ですか?

ファイル内の任意の文字列内の文字列を検索できます。それが可能であれば、 "フットバーバー"での "テスト"の任意の発生。

そうでなければ、部分文字列で始まる行/レコードを見つけることができてうれしいです。 "foo"は "footbar"を検索しますが、 "testbarfoo"は検索しません。

ファイルを一度ソートしてから、 "a"の行が始まる場所、 "b"の行が始まる場所などを記録することを考えていました。これにより、すぐに正しいセクションにジャンプして時間を短縮できます取る。私は3つの文字の組み合わせがすべてより速くなる位置を記録することで、さらに改善することができましたが、より良い方法があることが分かります。

+1

ファイル内の100GBのコンテンツを検索します。本当に?それが1回であれば大丈夫です。あなたがリアルタイムでそれを望むなら、私はあなたがテキストベースの検索エンジンをチェックすべきだと思う。例えばElasticSearch、Apache Lucene –

+0

ソートされたファイルに特定の文字の開始を記録するというのは本当に好きではありません。ファイルをアルファベット順に行単位でソートしている場合は、ログnだけでバイナリ検索を実行できます。 – BoltKey

+0

100GBのファイルがあると仮定すると、100行の文字が残っています。これらのインデックスを保持すると、約3GB(キーと整数のオフセットの場合)になります – Uriel

答えて

1

私は良いスタートはDAFSAを生成することができると思います。おそらくそれをグラフファイル形式と組み合わせなければならないでしょう。

関連する問題