0

私は逆索引付けに取り組んでいます。これは、文書コレクションを索引付けし、各用語を情報とともに保存し、その参照を投稿ファイル (文書 ID、場所など) に保存します。

現在、私はそれを .txt ファイル形式で保存しています。これは、その .txt ファイルに関するすべてのクエリに対して文字列の一致が必要であり、より多くの時間がかかり、より複雑なものになります。

その情報を、リンクされたリスト スタイルのデータ構造のようなファイルに保存したいと考えています。このタイプのシナリオではこれが可能です....(また、インデックス作成にPHP言語を使用しています)。

どんな助けでも感謝します、ありがとう。

4

1 に答える 1

1

逆索引のポイントは、任意の用語の出現リスト (投稿リスト) に非常に高速にアクセスできるようにすることです。シンプルですぐに利用できるデータ構造を使用して実装したい場合、おそらくできる最善のことは

  • ハッシュを使用して、用語から投稿リストへのマッピングを保存します
  • 各投稿リストを、ソートされた整数の連続ブロックとして保存します (つまりArrayList、Java やstd::vectorC++ のようなもの)。リンクされたリストは使用しないでください。ポインタのために大量のスペースが浪費されるためです。

より適切な(そしてより洗練された)実装では、次のことを考慮します。

  • その投稿リストは非常に大きくなる可能性があるため、複数のチャンクに分割し、それぞれを 1 つの連続したブロックとして保存する必要があります。
  • 投稿リストは圧縮可能であり、また圧縮すべきである

これらの手法の詳細な説明は、古典的な本Managing Gigabytesにあります。

于 2012-04-11T14:22:30.697 に答える