PHP と MySQL で検索エンジンを作成する方法

とにかく、なぜ検索エンジンを作りたいのですか? それらすべてを支配する検索エンジンはすでに存在します。 Google を使用して、インターネットでほぼ何でも検索できます。ビッグ G と同じコンピューティング機能とストレージ機能を利用できるとは思えません。

では、なぜ独自の検索エンジンを作るのでしょうか? ――もちろんお金を稼ぐためですよ!

…そして次の大きな検索エンジンの作成者として、あるいはプログラマーやエンジニアとして挑戦することが好きなので有名になるためです。公共のインターネット用の検索エンジンを作成するのは難しいので、あなたも私と同じなら、難しい問題を解決したいと思うでしょう。

3 番目のアプリケーションは、数千ページに及ぶ大規模な Web サイト向けにカスタマイズされた高速サイト検索です。インデックス付き検索エンジンは全文検索機能よりもはるかに高速です。Google のサイト検索がサイトに対して十分な柔軟性を持たない場合は、独自の検索機能を作成できます。

検索の基本

BIG 検索エンジンの基本は、単語から Web ページへのインデックスです。基本的には、単語の長いリストと、それらがさまざまな Web ページにどの程度関連しているかです。

検索エンジンを作成するには、次の XNUMX つのことを行う必要があります。

* どのページを取得するかを決定して取得します
* ページから単語、フレーズ、リンクを解析します。グーグルカスタムSE
* すべてのキーワードまたはキー フレーズに、そのフレーズがそのページにどの程度関連しているかを示すスコアを与え、そのスコアを検索エンジンのインデックスに保存します
* ユーザーがインデックスをクエリして、一致する Web ページのリストを取得する方法を提供します。

これは、ベテランのプログラマーにとって難しいことではありません。 正規表現を知っていて、HTML とデータベースの経験があれば、XNUMX 日で完了できます。

これで、検索エンジンが機能するようになりました。多数のコンピュータとハード ドライブを追加するだけで、すぐにインターネット全体のインデックスが作成されます。そこまでする準備ができていない場合、50 テラバイトのディスクには約 XNUMX 万ページのインデックスが保持されます。

ページの採点方法

基本的な検索機能を完了した後、誰かが新しいマシンを使用したいと思うようになるまでには、多くの作業が必要です。インデックスだけでは十分ではありません。難しいのは、エンド ユーザーが何を探しているのかという考えに最も関連した検索結果をエンド ユーザーに提供するために、ページにスコアを付ける方法です。

タイル タグ、説明、メイン Web ページ コンテンツ内のキーワードにどの程度の重みを置くかを決定する必要があります。適切なスコアリングを行うには、ページの URL で見つかったキーワードを増やしたり、受信リンクのアンカー テキストをチェックしたりすることもできます。インバウンド リンクを追跡することは、上記の中で最も便利であり、最も困難であるため、インデックスを作成するページ間のすべてのリンクに関する情報を含む別のデータベース テーブルを保持する必要があります。

何にインデックスを付け、何にインデックスを付けないか

実際のインターネット コンテンツのインデックス作成を開始するときに見つかるその他の障害は、無駄な量の無駄なジャンクがあちこちに浮遊しているという事実であり、最終的にはインデックスがスパム、アフィリエイト ページ、パークされたドメイン、コンテンツのない進行中のホームページ、リンクでいっぱいになってしまいます。検索エンジン オプティマイザーによって使用されるファーム、データ フィードを使用して製品リストやその他の複製コンテンツを含む数千のページを作成するミラー サイトなど…

インターネットからインデックスを作成する場合、人々が実際に読んだり検索したりしているものからジャンク コンテンツを除外する方法を見つける必要があります。まず、クロールするサブディレクトリの深さ、クロールするドメイン インデックス ページからのリンク ホップ数、Web ページごとに許可するリンクの数を制限できます。

ウェブサイトの解析

HTML の書き方には正しい方法も間違った方法も含めて何百万もの方法があり、インターネットからインデックスを作成する場合は、そのすべてを処理する必要があります。

ページからキーワードを解析する場合、完全な HTML 標準を処理するだけでなく、インターネット ブラウザーで非公式にサポートされているすべての非標準的な方法も処理する必要があります。

すべてのページを読み取ることができるようにするには、クライアント側の JavaScript を解析し、フレーム、CSS、および iframe を処理する必要もあります。
これは、あらゆる種類のコンテンツを読み取ることができるようにするための、一般的な検索エンジンでの作業の大部分です。

なぜこれほど多くの URL があるのですか?

最後に、多くの Web サイトには同じ Web ページを指す URL が多数あるという事実に対処する必要があります。この例を見てください。

dmoz.org
www.dmoz.org
dmoz.org/index.html
www.dmoz.org/index.html

これらの URL はすべて同じ Web ページを指しています。これを処理する特別なコードを作成しない場合、すぐに検索エンジンに 4 つの結果 (URL ごとに XNUMX つ) がすべて同じページに表示されることになります。ユーザーはあなたを好まないでしょう。
URL の疑問符の後のセッション ID が同じ Web ページに対してほぼ無限の URL を作成するクエリ文字列の可能性もあります。

google.com?SID=4434324325325
google.com?SID=4387483748377
google.com?SID=7654565644466

検索エンジンにとっては、すべて同じコンテンツを含む非常に多くのページが存在することになります。もちろん、簡単な解決策は、クエリ文字列を含むページのインデックスを作成しないことです。または、ページからクエリ文字列を削除します。これは機能しますが、多くの正当なコンテンツ (フォーラムなど) もインデックスから削除されます。

これで、サイト検索エンジンを作成するために必要な情報がすべて揃いました。一般的なインターネット検索エンジンを使用する場合は、さらに多くの詳細を含める必要があります。 robots.txt、サイト マップ、リダイレクトなど、 プロキシ、コンテンツ タイプの認識、高度なランキング アルゴリズム、およびテラバイト規模のデータの処理を行います。今後の記事で詳しく説明します。次の検索エンジン プロジェクトも頑張ってください!

カテゴリーブログ
  1. ピンバック:TopTut.com に言及したツイート – トップ チュートリアル » PHP と MySQL で検索エンジンを作成する方法 -- Topsy.com

  2. ピンバック:TopTut.com – トップ チュートリアル » PHP で検索エンジンを作成する方法 … |オンラインでの検索エンジンのプロモーション

コメントは締め切りました。