2012-01-19 23 views
1

私は約500万語のテキストを保持する約100万行のテーブルを持っており、これらのテキスト内で単語を検索しています。テキストを繰り返して検索することは時間的に効率的ではありません。何か案が?テキスト検索アルゴリズム

+0

テーブルデータの保存にはどのような方法を使用していますか?フラットファイル? MySQL?あなたの質問にはかなり重要な情報です – Seph

+0

mssql varchar(max)in tableしかし、私はストレージメソッドを変更することができます。 C#、mssql私は使用しています。 – Coenni

答えて

2

を示唆している、私はあなたがinverted indexesを見てお勧めします。私が言うことができる限り、簡単に構築し、あなたのケースのための高速検索。既にサポートしているデータベースに切り替えることができない場合に備えて、あらゆる種類のデータベース環境で実装するのも非常に簡単です。

さらに詳しい情報をお伝えいただければ、別の解決策が役立つかもしれません。

+0

しかし、私はlevenshteinメソッド(edit_distance)を使って、2つの単語(ユーザが入力した単語とデータベーステキストの次の単語)がどれほど類似しているか調べています。同じ方法でどのように逆インデックスとレベンシュテインを使うことができますか?私はそれについて考えています。なぜなら、「猫」がテキストに見つからなければ、私は「帽子」を探しているかもしれませんし、「帽子」やユーザーが入力したquuteを含むテキストがあります。かなり "。 – Coenni

+0

反転インデックスとレベンステインの両方を使用する場合は、トライ内で逆インデックスを実装できます。正確に行うと、Levenstheinルックアップをサポートしようとします。各リーフには、一致したすべてのドキュメントのリストが含まれます。次に他の人が良い答えを見つけることを可能にするために、質問の中でより詳細な情報を与えてください。 – LiKao