10

私は、何万もの非常に大きな (テキスト) ファイルを処理する IDE に非常によく似たものを開発しており、この分野の最新技術を調査しています。

例として、Intellij の標準 (非正規表現) 式の検索アルゴリズムは非常に即時的です。彼らはどのようにこれを達成しますか? 検索可能なすべてのファイルのある種のサフィックスツリーをメモリに保持しているだけですか? ファイルのコンテンツのかなりの部分をメモリに保持しているだけなので、標準の KMP をほぼ完全にメモリ内で実行して、ディスク IO を回避していますか?

ありがとう

4

3 に答える 3

1

Apache Luceneをご覧ください。完全に Java で書かれたテキスト検索エンジン ライブラリです。使用するには少し重すぎるかもしれませんが、オープンソースであるため、どのように機能するかを確認できます。

インデックスを作成し、ライブラリのソース コードを検索するデモを備えています。これは、やりたいこととほとんど同じように聞こえます。

また、Boyer-Moore 文字列検索アルゴリズムも見てください。これは、 ctrl +f スタイルのドキュメント検索を提供するアプリケーションで一般的に使用されているようです。これには、検索用語の前処理が含まれるため、可能な限り少ない比較を実行できます。

于 2016-09-04T21:08:14.163 に答える