Web検索エンジンに関する一般的な言葉

検索エンジンの一般的な機能について非常に多くの質問が生じたので、ここに小さな紹介記事があります。 検索エンジンが何であり、何をすべきかを少し明確にするために、一般的な用語で説明します。 おそらくスペシャリストにとってプログラマはあまり面白くないでしょう、私を責めないでください



しかし、要点:私の謙虚な意見では、検索エンジンは検索クエリに最も関連性の高い結果を見つけることができるはずです。 私たち全員が慣れ親しんでいるテキスト検索の場合、検索クエリは単語のセットであり、個人的には長さを8単語に制限しました。 答えは、検索クエリに最も関連するページへのリンクのセットです。 リンクに注釈を付けて、ユーザーが期待する内容を把握し、結果から目的のものを選択できるようにすることをお勧めします。注釈はスニペットと呼ばれます。



一般に検索の問題は解決されないと言う必要があります。たとえば、「work」という単語など、最も関連性の高いドキュメントの場合、検索エンジンの観点からはより適切な修正コピーを作成できますが、観点からは完全にナンセンスです人。 もちろん、価格と時間の問題です。 今日のインターネットは広大であるため、このようなページがたくさんあります。 さまざまなシステムがさまざまな方法でそれらと戦い、さまざまな成功を収め、いつか人工知能が私たち全員を打ち負かします...





ここでは、意味認識アルゴリズムが役立ちますが、私はそのうちの1つ(実際に意味を認識し、統計を考慮しない)のみに精通しており、その適用性についてはほとんど考えていません。 したがって、タスクは経験的に解決されます-つまり 「チャフから粒」を分離するためのページでのいくつかの操作の選択。



現実の世界では、インターネット全体を一瞬で閲覧して最良の結果を見つけることはまだ不可能であるため、検索エンジンは、収集して処理したネットワークの一部のローカルコピーを保存します。 10億ページから必要な単語を含むページのみをすばやく受信するために、「インデックス」が構築されます。各インデックスは、この単語を含むページのリストに対応しています。 当然、ソートされた単語を検索するために、検索された単語が見つかった場所、テキスト内の強調表示方法、その他の数値ページメトリックを保存する必要があります。



1億ページあるとします。 平均的な単語は、ページの1〜1.5%に出現します。 1単語あたり100万ページ(2ページごとに表示される単語がありますが、さらにまれな単語があります)。 300万語が見つかったと言うだけです。残りはあまり一般的ではなく、これは主にタイプミスと数字です。 特定の単語が特定のページで発生する1つのレコードを保存するには、ページIDは4バイト、サイトIDは4バイト、割り当てられた場所と方法に関するパック情報は16-32バイト、3つのリンクランキング係数は12バイト、残りはメトリックはまだ約12〜24バイトです。 インデックスはいくらになりますか-見積もりの​​ためにお任せします。

3mln * 1mln *総録音ボリューム。



このインデックスを作成するには、3つのメカニズムがあります。



ページのインデックス作成-Webからページを取得し、その初期処理

主な情報に基づいてPageRankなどのリンクメトリックを構築する

既存のインデックスの更新-新しい情報をそこに導入し、受信したメトリック、特にPageRankでソートします。



さらに、ページテキストを保存する必要があります-検索プロセスで注釈を作成するには



検索プロセス



多くの関連性メトリックを区別できます。特定のユーザーの結果の「有用性」に応じたもの、見つかった合計数に基づいたもの、ページ自体の指標に基づいたものなど、特定の「基準」を備えた検索エンジンがあります。



機械のために、すなわち サーバーは、何らかのメトリックで見つかった結果を並べ替えることができ、数字のセットを使用して各ページをマッピングします。 たとえば、このページのテキストで見つかった単語の合計数、ページのテキストでのこれらの単語の割り当てに基づいて計算された重みなど。 そのような係数の別の種類は、リクエストに常に依存するわけではありません-例えば、これにリンクするページの数。 それが多いほど、出力のページの重みが大きくなります。 3番目のタイプの係数は、クエリ自体に依存します-使用頻度の低い単語がどれくらいあるか、どれが一般的か、それらはスキップできます。

各ページのこれらの係数の多数に基づいて、検索は1つの数値を出力する必要があります。関連性があり、それによってすべての結果がソートされます。



インデックスが既に構築されている場合、それを検索できます:



選択したポリシーに応じて、クエリを単語に分割し、各単語に対応するインデックスの断片を選択し、交差させるか、他のことを行います

各ページの係数を計算します-その数は、必要に応じて、千をはるかに超えることができます

要因に基づいて関連性メトリックを構築し、並べ替え、最良の結果を選択する

注釈の作成-スニペットと結果の表示



検索エンジンに関する私の記事の全内容とリストはここで更新されます: http : //habrahabr.ru/blogs/search_engines/123671/



All Articles