2010-12-06 18 views
1

だから、私は著者ごとに数百万の文章をデータベースに保存しています。私は文章を効率的に検索し、著者を返すことができる必要があります。さて、私は、この文章で単語の誤字を訂正したり、1つまたは2つの単語を忘れたりして、アプリケーションをまだ一致させることができるようにしたいと考えています(ファジー・エスク)。誰かが私を正しい方向に向けることができますか?どのようにGoogleはこれを行うのですか?私は、例えば歌詞をgoogleで検索することができるので、歌詞付きの曲が返されます。私は同じことをするつもりですか?問題:数百万の文章のデータベースで文を検索する必要がありますか?

ありがとうございます。

ファジーが複雑すぎると、効率的な文章検索に対処できます。

答えて

0

フルテキスト検索の場合は、inverted indexのデータ構造を確認してください。

これは、UPDATE、検索エンジンがそれを行う方法

samples of code

です:あなたは、分散システムチェックHadoopに取り組んでいる場合も - どのようGoolgeのMapReduceの

0

SQL ServerまたはOracleでの索引付けは、すぐに使用できるようになります。彼らはあいまいになり、単語の根や他の巧妙なものを使うことができます。 私は他のDBエンジンにコメントすることはできませんが、クイック・グーグルがほとんどの場合、類似したものがあります。何らかの理由で、私はそれらが曖昧さにおいてより制限されることを期待する。

0

ファジィ・マッチングは単純なことではありませんが、一部のデータベースではファジィ・サーチが実装されていますが、使用する方法やデータによっては結果が異なる場合があります。ここではSQLであいまい検索を説明したリンクは、文検索用として

http://msdn.microsoft.com/en-us/magazine/cc163731.aspx

を切断、ほとんどのDBエンジンは、あなたが見てみたいことがあり、全文検索/索引を実装する...それはでトレードオフが付属していますパフォーマンスとストレージの条件がありますが、それを見たいかもしれません。

1

Javaで書いているのなら、Luceneを試すことができます。

個々の文ではなく、実際には「文書」と作成者でなければなりませんか?

+0

Luceneをデータベースと統合することはできますか? – Enrique

0

のためのオープンソースの代替Googleはこれを行う?

逆インデックスを使用する。詳細は独自のものですが、索引などの複製や記憶が大量であるため、1秒間に膨大な数の検索要求を処理できるように、最後のドルをメモリに賭けることができます。