最近ウェブサイトの最適化について勉強するのに忙しいのですが、この記事を読んで急に興味を持ち、SE の原理を簡単に勉強しました。検索エンジンの仕組みと原理をよりよく理解することによってのみ、SEO 担当者にとって大きなメリットが得られることは間違いありません。より良いランキング。
検索エンジンが解決する必要がある技術的問題は、通常、スパイダー プログラム + 分類とインデックス付け + 語彙 + 並べ替えアルゴリズム要素 + データベースのインデックス付けと最適化 + データベース構造に分類されます。
1. 蜘蛛。現時点ではスパイダーはCかPHPで実装できるようです。 Baidu のスパイダーのほとんどは C で作られています。C は複数のデータベース接続インターフェイスもサポートでき、C の動作効率は PHP よりも高く、C は最下層の制御も優れています。 C はとても優れていますが、それでも PHP を使いたいと思っています。もっと時間を節約しなければなりませんが、C言語を学ぶことはできなくなります。将来的に高効率が必要な場合に C を使用する必要がある場合は、再度 C を使用してください。データベースは変更せず、MYSQL を C に接続できます。 PHP には利点と欠点があります。スパイダーであれば大きな問題にはなりません。最大の問題は、非常に遅くなる可能性があることです。 Web ページをクロールするときに発生する可能性のある問題は、クロールの順序、クロールが失敗した場合やタイムアウトになった場合に記録する方法、次回クロールをいつ更新するかなどです。検索エンジン データベースは最初は URL を持たない新しいものであり、多数の URL を追加する必要があります。ここで for ループ ステートメントを使用すると、英語の文字に従って自動的にループすることができます。もちろん、ウェブサイトは英語だけでなく、手動でのみ入力できる数字も表示されます。それでもループで取得すると、多くが失敗すると推定されます。キャプチャされたコードを分析して、エンコード タイプが utf-8 か gb2312 かを確認する必要があります。私の検索エンジンは簡体字中国語のみをキャプチャしたいと考えています。取得がタイムアウトになると記録され、3 回連続でタイムアウトになると、約 10 日後に再度取得されます。
2. インデックスの作成は非常に難しい問題です。 Baidu と Google は、独自のサーバー ファームを使用して分散サーバーを構築できます。そんなに多くのサーバーは持っていません。そこで、別のアプローチを試してみたいと思いました。静的ページを作成します。 Baidu や Google では比較的一般的ではない単語を入力するのに約 0.2 秒かかるのに、一般的な単語は 0.1 秒しかかからないということは、これまで知りませんでした。さらに、2 回目に単語を繰り返し入力するのに必要なクエリ時間は大幅に短縮されます。これはおそらくインデックスの影響でしょう。インデックスがメモリに配置されている場合、読み取り速度は非常に問題ありません。サーバーが 1 台しかないので、一般的なクエリ用語 50,000 個のインデックスをそこに追加するだけでも、おそらく少し疲れるでしょう。 1 ページは少なくとも 20K である必要があり、50,000 ページは 20K*50=1G になります。これは 50,000 語の最初のページにすぎません。ユーザーがクエリのためにページをめくりたい場合、メモリは間違いなく十分ではありません。最初のページだけがメモリに置かれ、ユーザーがページをめくってクエリを実行する場合、速度は向上しません。だから私は完全に静的になるつもりです。 50,000 ワードのクエリをシミュレートし、静的ページを生成します。すべての単語の最初のページはメモリに配置され、後続のページはハードディスクに配置されます。ページをメモリに入れることができれば、この問題は解決されるでしょう。
3. 語彙。中国語には数千の文字があり、一般的に使用される漢字は少なくとも 3,000 あります。これで構成されている一般的に使用される単語は 20,000 個あると推定されています。このシソーラスはどのような形式で保存すればよいですか? 以前、Kingsoft PowerWord のシソーラス ファイルを見つけて直接コピーしようと考えましたが、この方法はまだ成功していません。
4. 並べ替えに影響するすべてのアルゴリズムはテーブルに配置する必要があります。次に、ウェブサイト自体の要素である固定アルゴリズムと、ユーザーが入力した単語や時間や季節などによって変化する要素である可変アルゴリズムがあります。固定アルゴリズムがテーブルに配置され、Web サイトごとに合計スコアが計算されます。変更アルゴリズムの一部は以前に生成されており、一部はユーザー入力後に計算されます。
5. 現在、データベースのインデックス作成に適したソリューションはありません。式インデックスが多すぎてはなりません。多すぎると速度に影響します。
6. データベース構造。これは重要です。 Web サイトのフロントエンド インターフェイスが公開される前に、データベース構造を完成させる必要があると推定されています。また、アルゴリズム要素の追加やクエリ ステートメントを最適化するためのフィールドの変更など、将来のアップグレードに備えてインターフェイスを残しておくことも必要です。初期構造はこんな感じです。 1 ~ 3 のテーブルには Web サイト情報が格納されます。最初のフィールドは自動インクリメントされる主キー、2 番目のフィールドは Web サイトのホームページ アドレスで、順に Web サイトのドメイン名の登録時間、収集時間、最後のスナップショット時間、含まれるページの総数、バイト数です。ホームページ、ドメイン名分類 (com/cn/org/net/gov/edu)、バックリンクの総数、Web サイト分類 (これは 1 ~ 10 まで可能、ポータルは 30 まで拡張可能) など。
この記事は、www.jianfeiyiqi.com から転載されました。リンクとともに出典を示してください。