|
検索エンジンとは、特定のコンピュータプログラムと戦略を用いてインターネットから情報を収集し、その情報を整理・処理し、ユーザーに検索サービスを提供して関連情報を表示するシステムです。検索エンジンには、全文インデックス、ディレクトリインデックス、メタ検索エンジン、垂直検索エンジン、集約検索エンジン、ポータル検索エンジン、無料リンクリストなどがあります。では、検索エンジンにとって最も重要なものは何でしょうか?検索結果の正確さを挙げる人もいれば、検索結果の豊富さを挙げる人もいますが、これらは最も致命的な欠陥ではありません。検索エンジンにとって、最も致命的な欠陥は検索時間です。百度でキーワードを検索し、検索結果が返されるまでに5分もかかったらどうなるでしょうか。あなたは必然的にすぐに百度を放棄するでしょう。 厳しい速度要件(現代の商用検索エンジンのクエリ時間はマイクロ秒単位)を満たすため、検索エンジンはキャッシュを利用してクエリニーズに対応しています。つまり、検索を実行した際に得られる結果は即時ではなく、検索エンジンのサーバー上にキャッシュされているということです。では、検索エンジンの一般的なワークフローとはどのようなものでしょうか?それは3段階のプロセスとして理解できます。 この記事では、3 つのワークフローの一般的な説明と概要のみを説明します。詳細な技術的側面については、別の記事で説明します。 I. ウェブページコレクションウェブスクレイピング(スパイダークローリングとも呼ばれる)では、ウェブクローラーがウェブページにアクセスします。これらのスパイダー(Googleではロボットと呼びます)が関心を持つページは、以下の3つのカテゴリに分類されます。 1. スパイダーがこれまで一度もクロールしたことのない新しいページ。 2. スパイダーが訪問したが、コンテンツが変更されたページ。 3. スパイダーによってクロールされたが、その後削除されたページ。 したがって、スパイダープログラミングの本来の意図と目的は、これら3種類のページを効果的に発見し、クロールすることです。ここで、スパイダーはどこからクロールを開始すべきかという疑問が生じます。 ウェブサイトが深刻なペナルティを受けていない限り、通常はウェブサイトのバックエンドサーバーを介して、熱心なウェブクローラーがサイトを訪問しているのが確認できます。しかし、プログラミングの観点から、これらのクローラーはどこから来るのか疑問に思ったことはありませんか?これには様々な説があります。ある説は、クローラーはシードサイト(または権威の高いサイト)から開始し、権威に応じて階層ごとにクロールしていくというものです。別の説は、クローラーがコレクション内のURLをクロールする明確な順序を持っておらず、検索エンジンがコンテンツの更新パターンに基づいて、ウェブサイトをクロールする最適なタイミングを自動的に計算しているというものです。 実際、検索エンジンが異なれば、クロール開始地点は必然的に異なります。Baiduに関しては、趙氏は後者を支持しています。Baiduの公式ブログに掲載された記事「インデックスページリンク補完メカニズムの手法」では、「スパイダーはウェブページの公開サイクルを可能な限り検出し、適切な頻度でウェブページをチェックする」と明記されています。このことから、Baiduのインデックスデータベースでは、URLセットごとに適切なクロール時間と一連のパラメータを計算し、対応するサイトをクロールしていると推測できます。 ここで明確にしておきたいのは、Baiduの場合、「site:www.mahaixiang.cn」で返される値は、ウェブクローラーがインデックスしたページ数ではないということです。例えば、「site:www.mahaixiang.cn」は、Baiduによってインデックスされたページ数を返すわけではありません。Baiduによってインデックスされた実際のページ数を確認するには、Baiduのウェブマスターツールを使用してインデックス数を確認する必要があります。では、「site:」とは何でしょうか?これについては、今後の記事で説明します。 では、スパイダーはどのようにして新しいリンクを発見するのでしょうか?それはハイパーリンクに依存しています。インターネット全体を有向集合の集合と見なすことができます。スパイダーはURLの集合Aから開始し、ウェブページ内のハイパーリンクをたどることで新しいページを継続的に発見します。このプロセスでは、新しいURLは集合Aに既に存在するURLと比較されます。新しいURLであれば集合Aに追加され、そうでなければ破棄されます。スパイダーはウェブサイトに対して、深さ優先と幅優先という2つの主要なクロール戦略を使用します。しかし、Baiduのような商用検索エンジンの場合、ドメイン固有の重みやBaiduのサーバーマトリックス分布など、より複雑なルールがクロール戦略に適用される場合があります。 II. 前処理前処理は検索エンジン最適化(SEO)において最も複雑な部分であり、ほとんどのランキングアルゴリズムはこの段階で効果を発揮します。検索エンジンは前処理中に、主にデータに対して以下の手順を実行します。 1. キーワードを抽出する 検索エンジンのスパイダーがクロールするページは、ブラウザで表示されるソースコードと同じです。このコードは通常、乱雑で整理されておらず、無関係なコンテンツが多く含まれています。そのため、検索エンジンは次の3つのことを行う必要があります。1. コードノイズの除去。ウェブページからすべてのコードを削除し、テキストのみを残します。2. テキスト以外のキーワードを削除します。例えば、ナビゲーションバーや複数のページにまたがる共有領域にあるキーワードなどです。3. ストップワードの削除。ストップワードとは、「的」や「在」など、特定の意味を持たない単語です。 検索エンジンは、このウェブページのキーワードを取得すると、独自の単語分割システムを使用して記事を分割された単語のリストに分割します。これらの単語はデータベースに保存され、記事のURLと1対1でマッピングされます。以下に例を挙げて説明します。 スパイダーがクロールしたページの URL が http://www.mahaixiang.cn/sitemap.html であり、このページで上記の操作を行った後に検索エンジンによって抽出されたキーワード セットが p であり、p がキーワード p1、p2、...、pn で構成されている場合、Baidu データベースでは、それらの関係は下図に示すように 1 対 1 になります。 2. 重複したウェブページや転載されたウェブページを削除する 各検索エンジンは、重複ページを識別するために異なるアルゴリズムを使用しています。重複排除アルゴリズムを100個の要素で構成すると仮定すると、すべての検索エンジンがこれらの要素のうち80個を同じように使用していると考えられます。残りの20個の要素は、各検索エンジンの異なるSEOアプローチに合わせて調整された固有の戦略です。この記事では、検索エンジンの一般的なプロセスについて概説するのみであり、詳細な数学モデルについては詳しく説明しません。 3. 重要な情報の分析 コードノイズ削減では、検索エンジンは単にノイズを除去するのではなく、Web ページ コード (H タグや strong タグなど)、キーワード密度、内部リンクのアンカー テキストなどの方法を最大限に活用して、Web ページ上の最も重要なフレーズを分析します。 4. ウェブページの重要度分析 このウェブページを指す外部リンクのアンカーテキストが伝える重み値を用いて、このウェブページの重み値が決定されます。同時に、前述の「重要情報分析」と組み合わせることで、このウェブページのキーワードセットp内の各キーワードのランキング係数が決定されます。 5. 反転ファイル 前述のように、ユーザーが受け取る検索結果は即時に得られるものではなく、検索エンジンのキャッシュ内に既に大部分が整理されています。もちろん、検索エンジンは未来を予測することはできず、ユーザーがどのようなキーワードを検索するかを知ることはできません。しかし、キーワードデータベースを構築することは可能です。ユーザーのクエリを処理する際、検索エンジンはこのデータベースに基づいてリクエストをセグメント化します。これにより、検索エンジンはユーザーが実際にクエリを実行する前に、データベース内の各キーワードのURLランキングを事前に計算できるため、クエリ処理時間が大幅に短縮されます。 簡単に言うと、検索エンジンはコントローラーを使用してスパイダーのクローリングを制御し、設定された URL を元のデータベースに保存し、インデクサーを使用して各キーワードと URL の対応を制御し、インデックス データベースに保存します。 これを例で説明してみましょう。 ページ http://www.mahaixiang.cn/sitemap.html が p={p1, p2, p3, ..., pn} に分割されている場合、インデックス データベースでは次の図のように表されます。 上の図は分かりやすくするために作成したものです。インデックスデータベースは、検索エンジンにおいて最も高いパフォーマンスが求められるデータベースです。これは、その中のすべての要素がアルゴリズムの影響を受けるためです。そのため、実際のインデックスデータベースは、多次元配列で構成される比較的複雑なインデックステーブルになると考えられますが、その主な機能は上の図と同じです。 III. 問い合わせサービス名前が示すように、クエリサービスは検索インターフェース上でユーザーのクエリリクエストを処理します。検索エンジンは検索エンジンを構築し、リクエストを3つのステップで処理します。 1. クエリ方法とキーワードに基づいて単語をセグメント化します。 まず、ユーザーが検索したキーワードをキーワード列に分割し、これを仮にqとします。ユーザーが検索したキーワードqは、q = {q1, q2, q3, ..., qn}に分割されます。 次に、すべての単語がつながっているか、間にスペースがあるかなどのユーザーのクエリ方法と、q 内のさまざまなキーワードの品詞に基づいて、クエリ結果の表示でクエリ用語内の各単語の重要度を決定します。 2. 検索結果の並べ替え 検索語句の集合qと、q内の各キーワードに対応するURLのインデックスがあります。また、ユーザーの検索方法と品詞に基づいて、検索結果の表示における各キーワードの重要度を計算します。その後、包括的なランキングアルゴリズムを実行するだけで、検索結果が得られます。 3. 検索結果と文書の概要を表示する 検索結果が利用可能になると、検索エンジンはそれをユーザーの表示インターフェースに表示し、ユーザーが使用できるようにします。 ここで、2つの質問について考えてみましょう。 ① 検索インターフェースでは、Baidu がユーザーの検索語句の前後の要約を表示していることにユーザーはよく気づきます。最初のページを超えて数ページスクロールすると、一部の結果に検索語句が完全に含まれていないことがわかります。Baidu の抽出された要約で赤くハイライトされている単語は、検索語句の一部しか表していません。つまり、検索語句が完全に含まれていない場合、Baidu は単語分割結果において、より重要だと判断した単語を優先的に表示すべきではないでしょうか。これらの検索結果から、Baidu の単語分割アルゴリズムについて何か手がかりを得ることができるでしょうか。 ② 百度の検索結果では、検索語がページ内に複数回出現するにもかかわらず、ウェブサイトの概要セクションにその一部しか表示されないことがあります。通常、この部分は連続しています。百度は概要セクションにおいて、検索語にとって最も重要だと判断した部分を優先的に表示していると考えられます。このことから、ノイズ除去後のページ内の各部分に重み付けを割り当てる百度のアルゴリズムを推測できますか? これら2つの質問には様々な意見があり、SEOに携わる方はご自身で調べて理解する必要があります。私、馬海翔はここで誰かを誤解させるようなことは決していたしません。 IV. 百度の現在のプロセスの抜け穴このモジュールをプロセスの抜け穴と表現することをお許しください。しかし、クリッカーが横行する今日の世界では、これを抜け穴と呼ぶのは妥当だと思います。 上記の3つの主要コンポーネントに加えて、Baiduは生のデータベースとインデックスに影響を与えるユーザー行動モジュールも構築しました。生のデータベースは、主にインターネット上の不当な利益追求行為に対処するためのBaiduのスナップショットに関する苦情の影響を受けており、これは当然のことです。インデックスはユーザーのクリック行動の影響を受けますが、この設計自体には本質的な欠陥はありません。しかし、Baiduのアルゴリズムの未熟さが、クリック詐欺の蔓延につながりました。 Baiduのユーザー行動分析モジュールは非常にシンプルです。独自の苦情提出ポータルに加え、検索インターフェースにおけるユーザーのクリック行動を収集します。あるページの検索結果がほとんどのユーザーに閲覧されているにもかかわらずクリックされず、圧倒的多数のユーザーが2ページ目、あるいはそれ以降のページをクリックする場合、Baiduのエンジニアはこの現象に気づき、それに基づいてアルゴリズムを微調整します。現在、Baiduのアルゴリズムは業界ごとに異なります。 最初の 2 ページの検索結果が多数のクリックを獲得した場合、通常は 24 時間以内に大幅に宣伝され、1 位にランクされることもあります。 V. 検索エンジンの一般的なフローチャート(ユーザー行動アナライザーを含む)上記は、検索エンジンの仕組みに関する基本的なプロセスと原則についての私の理解です。 多くのSEO担当者は、Baidu、Google、その他の商用検索エンジンが、アルゴリズムや検索エンジン最適化よりもユーザーエクスペリエンスを重視していることに気づいているでしょう。ユーザーエクスペリエンスの向上に関する詳細は、「ユーザーエクスペリエンスを向上させ、ウェブサイトの信頼性を高める方法」をご覧ください。しかし、検索エンジンの具体的な好みは、曖昧な概念によって見えにくくなることがよくあります。これは検索エンジンの検索結果を多様化し、選択肢を増やし、自身の利益を最大化しますが、このアプローチは最終的には検索エンジンに利益をもたらします。 -終わり- |
検索エンジンの基本的な仕組みと原理
関連するおすすめ記事
-
SEM | 除外キーワード機能のテクニックと応用の詳細な分析
-
怪しい商売をしてフォロワーを失う人もいれば、800万回再生で一気に話題になる人もいます。ビリビリは商業取引をどのように扱うべきでしょうか?
-
Baiyang SEO: 個人の成長とネットワーク内でのつながりの構築方法についてお話ししましょう。[経験と洞察]
-
業界全体、複数のチャネル、複数の方向、複数のデータ、面接、認定、ツールと資料を網羅した、これまでで最大の SEMer 特典パッケージです。
-
SEO: ウェブサイトがペナルティを受ける原因となる要因は何ですか? また、回復するにはどうすればよいですか?
-
SEO、オンライン マーケティング、新しいメディアとデータの関係、そしてデータ分析の方法についてお話しします。