2

現在、ユーザーがプレゼンテーション、ドキュメント、電子書籍 (scribd や slideshare など) をアップロードできる Web サイトを開発しているため、ファイルのコンテンツを検索できるようにする必要があります。現在、txt ファイル内のファイルからテキストを抽出しています。MySQL を使用しているため、2 つのオプションを検討しています。

  1. プレーン テキストを別のテーブルに保存し、mysql のフルテキスト インデックスを使用して検索します。
  2. 転置インデックスを使用して単語を保存し、それらを検索します。(2 つの新しいテーブル - 単語とドキュメント テーブルとの多対多)。この場合、結果との関連性を高める繰り返しの単語を処理するにはどうすればよいでしょうか。

テキストは検索にのみ使用されます。(1)の問題は、電子書籍のテキストが巨大になる可能性があるため、(たとえば) 50kb 以下に制限することを検討しています。(2) はまた、電子書籍に多くの単語があるという問題を抱えていますが、これも制限される可能性があります。

それで、テキストにインデックスを付けて、全文検索を高速に実行できるようにする最善の方法を教えていただけませんか。この場合、mysql を最大限に活用する必要があります。

4

1 に答える 1

1

Rob Di Marco の提案に従って、Sphinx を使用することにしました。それは、最速の (そしてオープンソースの) 全文検索エンジンであることが判明しました。SphinxSEをコンパイルしてmysqlをクラッシュさせないようにするのに問題があったため、プラグインを含むMariaDBを使用しています。

RealTime インデックスのため、バージョン 1.10 を選択しました。行を追加するだけであれば、インデクサーがインデックス全体を再構築するのを待つ必要がないことを意味します。(メイン+デルタの回避策については知っていますが、これはSphinxQLで構成して使用する方が簡単です)

SphinxSE および RT インデックスに関するいくつかの質問も参照してください。

于 2011-02-12T22:15:06.997 に答える