2009-12-02 4 views
26

Google/GMail/etc。非常に便利ですが、部分検索やプレフィックス検索(例:stuff *)は提供されません。私は正確な表現を覚えていないので、しばしば私はGmailでメールを見つけることはありません。Googleが部分検索を提供していないのはなぜですか?インデックスが大きすぎるためでしょうか?

私は知りましたが、それは同じではありません。特に英語以外の言語について話す場合は同じです。

Googleがこのような機能を追加しないのはなぜですか?インデックスは爆発するだろうか?しかしデータベースは部分検索を提供しているので、この問題に取り組むための良いアルゴリズムがあるはずです。

ここで問題は何ですか?

答えて

7

Googleは実際に検索するテキストを保存しません。検索用語、ページへのリンク、ページ内のどこに用語が存在するかを格納します。そのデータ構造は従来のデータベースの意味で索引付けされています。ワイルドカードを使用すると、インデックスのインデックスがかなり遅くなり、Developer Artが言うように、それほど有用ではないと思います。

+3

接頭辞(stuff *)と近接検索を行うことができる検索エンジンを見つけました! [Exalead Web Search](http://www.exalead.com/search/)。これらのオプションを見つけるには、[高度な検索]をクリックします。 –

+1

@HughBrackettヒントはありがたいですが、ExaleadはAdvanced Searchでもオプションからプレフィックス検索を削除してしまいました。 :-(それはどこにも見つかりません。 – syntaxerror

-2

あなたは賢明車*を意味しているものを導き出すことはできませんので:

車を? カーペット? ニンジン?

Googleのアルゴリズムでは、ドキュメントテキストと外部インバウンドリンクを比較して、ドキュメントの内容を判断します。これらのワイルドカードを使用すると、これらのアルゴリズムはすべて迷惑メールになります。

+19

それは、この場合はすべての結果を返す必要があります。ユーザがそれを望むなら、ユーザはそれを取得する。 –

+0

私はそれが技術的にはできると思うが、ほとんどの人にとってはおそらく意味をなさないだろう。おそらくGoogleにリクエストを送信してください。誰が知っている、おそらく彼らは単に逃した素晴らしいアイデアですか? –

+2

googleはパターングロビングのアイデアを見逃していますか?私はほとんどそう思っていません。 –

3

Google Code Searchは、正規表現に基づいて検索することができるので、その方法を知っています。もちろん、コード検索で索引付けしなければならないデータの量は、Web検索に比べてごくわずかです。 Web検索で正規表現またはワイルドカード検索を使用すると、インデックスサイズが大きくなり、パフォーマンスが実用的でないレベルに低下します。

0

Googleで何かを見つける秘訣は、探しているコンテンツにある可能性が非常に高いが、関連のないコンテンツに一緒に表示される可能性が低い検索語句(または引用フレーズ)を入力することです。ワイルドカード式はこれとは逆の動作をします。ワイルドカードが一致すると予想される用語を入力してください.Googleはあなたにステミングを行うことに注意してください。コンピュータが蒸気で走っていた時代に、ライコス(iirc)はパターンマッチングをしていましたが、数年前にそれをオフにしました。私はそれが自分のサーバに負荷をかけすぎていると推測します。

8

Googleは部分的な単語を検索します。 Gmailはそうではありません。あなたはここで何が問題なのか尋ねるので、私の答えは努力の欠如です。この問題には、一定の時間と直線的な空間ではあるが、あまりキャッシュには向いていない検索が可能なソリューションがあります。接尾辞ツリー。接尾辞配列は、よりキャッシュフレンドリーで時間効率の良い別のオプションです。

+0

Suffix Treesの代わりにN-Gramsがあります。パフォーマーはストレージ効率が悪いだけです。それにもかかわらず、解決策。 –

+1

もう1つの方法は、Gmailの使用をやめ、Outlookを使用して戻ることです。 :-) –

+1

Googleはpartial __words__を検索しますが、部分__numbers__では一致しません!それは区別する必要があります。たとえば、シリアル番号の一部を探す場合は、関連する結果がまったく得られない可能性があります。私は今、これがうまくいかないと考えるのに十分な時間をかけました。 – syntaxerror

関連する問題