- ベストアンサー
独自の検索エンジンを作るには!?
難しいと思いますが独自の検索エンジンを作成してみたいと思っています。 検索エンジンといっても自分のWebサイト内を検索するものではなくGoogleやYahoo!、A9のように全世界のWebを対象にした検索を行う検索エンジンのことです。 検索エンジンに関しては知識がないのですがDBと相性がいいPHPで作成できるのではないのかなと思っています。 そこで質問です。 PHPやPerlなどで検索エンジンを作成することは可能でしょうか? 個人が運営している検索エンジンサイトなどはあるでしょうか? もし検索エンジンを運営することになった場合はどの位のスペックがあるサーバーが必要になってくるでしょうか? です。どうぞよろしくお願いいたします。
- Intel_404
- お礼率38% (213/548)
- PHP
- 回答数5
- ありがとう数15
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
検索エンジンを個人でphpやperlで作ることは理論上は可能かと思いますが、現実的には厳しいかと思います。 その理由はページの取得にあります。検索エンジンは、大きく分けて2つの部分に分かれます。 ・1つは、webページをまわってデータを取ってくる部分。 ・もう1つは、検索(要求)された単語やフレーズに応じて、取ってきたwebページのデータから適切なページを選択、表示する部分。 で、本来の検索エンジンでは2つ目(ランキングの評価)が重要なのですが、個人でやる場合には1つ目が非常にハードルが高いです。 例えば、1つのページを取得するのに平均1秒かかるとすると、10億ページを取得するのに約31年もかかります(現在、世界中には数十億ページ以上あるようです)。この部分の高速化は、高速な回線を世界的に多数用意する必要があります。検索対象が日本だけだとしても、億を下らないページがあるでしょうから(最近blog流行ってページ数激増みたいですし)、個人レベルで取得するのはかなり難しいと思います(全ページの巡回だけで数年~数十年かかってしまうでしょう)。 この対策(?)としては、自分では取得せず、大手の取得結果を利用させてもらう考え方があります。 直接的な答えではありませんけど、例えばメタサーチエンジンのceek( http://www.ceek.jp/ )では、検索後をいろんなサーチエンジンに投げて、その結果を取りまとめて表示します。 このように大手の結果を使うのも含めて検討されてはいかがでしょうか? # それでもとても大変だとは思いますが。
その他の回答 (4)
- satoh
- ベストアンサー率77% (17/22)
> Ceek.jpのニュース版のようにいくつか巡回するサイトを指定し、更新されたら見やすくHTMLファイルを作成しほかのサイトに見出しやリンクなどを表示できるようなシステム構成は難しいでしょうか? 前半のHTMLファイルを作るところまでの部分は、いわゆる「アンテナ」のことでしょうか?RSSが流行る前は、いろんなアンテナソフトがあったと思います。最近はRSSリーダが流行のようですけど。わたしはアンテナとかRSSとか使わないので、どんなソフトがあるかは、すみませんが知りません。 自前で作るにしても、最近はRSSを用意してくれているサイトも多いので、RSSを検討されては如何でしょうか? 後半の「ほかのサイトに見出しやリンクなどを表示できるようなシステム構成」の部分ですけど、管理下にあるサイトであるならば、前半とほぼ同様のプログラムを動かして、更新された時にリンクのみ生成すればできるかと思います。
お礼
なるほど。RSSを使用するのですね。ありがとうございました。
- ex_hmmt
- ベストアンサー率48% (726/1485)
この辺読むとGoogleクラスの検索エンジンがどのくらい涙ぐましい努力をしてるか良く分かると思います。 http://www.itmedia.co.jp/news/articles/0503/03/news046.html 初期のGoogleサーバは以下なんかに写真が載ってますね。 http://bb.watch.impress.co.jp/cda/alphageek/ さて、本題です。 >PHPやPerlなどで検索エンジンを作成することは 可能です。やろうと思えばできない事ではありません。 ただし、実用になるスピードで可能か。実現できるサーバ規模で可能か、となると無理なんじゃないでしょうか。 ただし、ぶっちゃけPHPやPerlでは能力的には不足すると思います。実際には、検索エンジン自体は(規模が大きくなれば大きくなるほど)通常の言語で構築する必要があるでしょう。 だけどたとえば 「全文検索システム Namazu」 http://www.namazu.org/ とかだってさすがに世界を相手にするような性能じゃないですからねえ…… 理屈だけなら、できますよ。PHPだろうがPerlだろうが。 要するに、HTMLをゲットしてきてその中の言葉を解析して、それをデータベースにぶち込んでいく。検索するときには言葉をデータベースから検索して、それを表示してやればいい。 ただ、規模がとんでもなくでかくなりますからね。 たとえば、Google検索の対象ページ数(サイト数ではなく、1HTMLを1ページと数えると考えて良いのかな?)は約80億以上だそうです。 単純に考えて、一つのページのURLが平均15バイト(つまり15文字)だったとして、全てのURLをリストアップ「だけ」しても1200億バイト=12ギガバイト。 その12ギガバイトに検索で解析した単語との関連付けをやってくわけですから ……世の中の単語って何語あるんでしょう。たとえば広辞苑にある単語だけで23万語。もちろん日本語だけではないわけで…… それを検索できるようにするためには、どうするか…… という事で、さくっとなんか普通のサーバの能力超えちゃう感じです。 Googleなんかはその辺を分散サーバで管理してやらせてたりとかしてるわけですよ。 うん。やっぱ結論出しますけど。 ・よほど対象を絞る努力をしないと個人で検索エンジンは無理 ・逆に、対象を絞った検索エンジンの提供なら面白いかもしれない。 (たとえばBlog検索なんてのはそういう発想から生まれたものでしょう) ・Googleはとんでもねー(もちろんYahooもとんでもねー) と言う事になります。
お礼
丁寧なご回答まことにありがとうございました。 >単純に考えて、一つのページのURLが平均15バイト(つまり15文字)だったとして、全てのURLをリストアップ「だけ」しても1200億バイト=12ギガバイト。 え~!URLだけでも12GBですか。ん~これは無理どころではないですね。
- tsuna555
- ベストアンサー率53% (22/41)
>PHPやPerlなどで検索エンジンを作成することは可能でしょうか? 検索エンジン自体はPHPやPerlで作れます。が、ロボット型検索エンジンを作るためにはロボットとかクローラなどと呼ばれるプログラムが必要となります。このロボットがWebをリンクをたどりながらページの情報をDBに登録していきます。ロボットはたぶんC言語などのコンパイル型の言語を使用して作られたパイナリプログラムです。 >個人が運営している検索エンジンサイトなどはあるでしょうか? 全世界のWebサイトを対象とした検索エンジンは個人では難しいでしょう。管理の手間やコストからして。 >もし検索エンジンを運営することになった場合はどの位のスペックがあるサーバーが必要になってくるでしょうか? アクセス数によります。平均同時アクセス数とアクセス時の負荷の統計から見積もりを行います。あなたが検索エンジンを作成して、動作させて、どの程度の負荷がサーバに掛かるのかがわからなければ算出は不可能です。
お礼
丁寧なご回答まことにありがとうございました。 問題はやはりロボットの作成なのですね。ん~Cはまったく分からないので自分で開発するには無理が。。でも夢は夢。いつか立てます。たぶん。
- YUTAKUN007
- ベストアンサー率66% (35/53)
素人で申し訳ないですが、 もちろんPHPやPerlで検索エンジンを作成することは可能です。 しかし、ヤフーなどは独自の言語で検索エンジンを作成していると 聞いたこともあります。 大規模なサービスになるとPHPでまかない切れるかは分かりません。 検索サービスには大きくわけて2種類があるようです。 ディレクトリ型…推薦されたサイトをスタッフが手作業で登録 (Yahoo などがそうですね。最近はどうだろう…) ロボット型…クローラーと呼ばれる巡回システム(ロボット)が 様々なサイトを歩き回り情報収集。 サーバーのスペックもそこそこ必要になってきますが 利用するクライアントの数によって代わってきます。 大規模なシステムの構築になれば複数のシステムを立ち上げ それぞれデータの整合性をチェックしロードバランサーの導入なども考えなければいけません。 また、クローラーが徘徊する為の大容量の回線も必要になります。 すべてを一つのサーバーで済まそうとすると無理があるかもしれません。 素人の考えで申し訳ないですが必要最低限以下のものが必要なのでは? ・検索システム ・大容量のストレージ ページのキャッシュなどを保存 ・クローラーサーバー(巡回ロボット) ・クローラーからのデータを整形する為のサーバー 検索システムや、クローラーは各社が独自のアルゴリズムで 開発されていますので腕の見せ所でしょう。 正規表現に対応したシステムなどがあると面白いですね。
お礼
丁寧なご回答まことにありがとうございました。 私が作成したいのはディレクトリ型ではなくGoogleなどが得意とするロボット型です。 しかしざっと返答をみるだけでも個人の領域をはるかに超えているのか分かります。 もうちょっと研究してから検索エンジンを立ち上げてみようと思います。
関連するQ&A
- 検索エンジンのロジックは?
こんにちわ yahoo! とか Google の様なディレクトリ型の検索エンジンを作成したいと考えています。 しかし、いまいちロジックが解りません。 どなたか参考になるサイトなどご存知の方いらっしゃいましたら、情報よろしくお願い致します。 ただ、Perl 良く分からないのでロジックの説明が載っているようなサイト希望です。 よろしくお願い致します。
- ベストアンサー
- CGI
- 動的ページにおいてロボット型検索エンジンで検索されるものとされないものがあるのはなぜ?
phpなどを利用して出力される動的なページにおいて、 ロボット型検索エンジンで検索されるサイトとされないサイトがあるのはどういった理由によるものなのでしょうか? 例えば、「教えて!goo」では個々の質問がGoogleで検索されうるようですが、「Yahoo!オークション」では出品されている個々の商品が検索されることがないように思われます。
- 締切済み
- その他([技術者向] コンピューター)
- yahoo!の検索エンジン
yahoo!の検索エンジンはgoogleの物を提供してサービスを運営していると聞きましたがボット関連の法でマイクロソフトのbingだと聞きました。どっちが正しいのでしょうか。またyahoo!japanも同じなのでしょうか。
- ベストアンサー
- Googleサービス全般
- 検索エンジンにひっかからない方法
ホームページを作成したいのですが、出来ればひっそりと やりたいので、Yahoo!やGoogle等で検索すれば簡単に出てくる、 という状況にはしたくありません。 検索エンジンに全くひっかからない様にするにはどうしたら 良いのでしょうか? お知恵をお貸し下さい。宜しくお願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- 検索エンジンについて
自分のサイトでWEB検索について検索エンジンgoogle、yahoo、msn、百度のどれかと提携しリスティング広告をした場合オーバーチュアのように自分のサイト内では広告料がもらえる検索エンジンてないですか。
- 締切済み
- その他([技術者向] コンピューター)
- 検索エンジン表示結果
すみませんが、よろしくお願いします。 検索エンジンの表示結果に関してなんですが、 個人でサイトを運営しておりまして、あるときからYahoo!の検索でサイトのトップページが検索結果に表示されなくなり、サブページのみが結果に表示されるようになってしまいました。(表示されているのかもしれませんが、順位としてはかなり下位のようで見つかりません)以前はしっかりトップページから表示されていたのに、どういったことなんでしょうか? ちなみにgoogleでは同じキーワードで、トップページが上位表示されています。googleとyahooとでは違うんでしょうが… 原因としてはどんなことが考えられるんでしょうか? していたこととすれば、サイトのコンテンツ作成、同系・同テーマのサイトへの相互リンク依頼での相互リンクや、ランキングサイト等への登録などです。 修正して改善されるのであれば、早急に修正したいと思っております。 ぜひ、よろしくお願いいたします。
- ベストアンサー
- CSS
- 使用している検索エンジンは?
あなたが普段使用している検索エンジンはなんでしょうか? 常にGoogleだとか、Yahoo!だとか、使い分けているとか、いろいろなご意見があるかと思います。 検索エンジン名と使用している理由をお聞かせください。 ちなみに私は。。 Googleを使用しています。Yahoo!はニュースなどを見るだけ。ブラウザにgoogleのツールバーも表示させています。
- ベストアンサー
- アンケート
- 作成したWebサイトを検索エンジンで表示されるようにしたいのですが。
Webサイトを作成しました。ヤフーやグーグルなどの検索エンジンで、表示されるようにしたいのですが、なにか登録など必要なのでしょうか?教えてください。よろしくお願いします。。。
- ベストアンサー
- その他([技術者向] コンピューター)
- GOOGLEでは検索されるのに、yahoo!では、全く検索に引っかからなくなった
お世話になります。 複数のHPを運営しております。タイトル通りなのですが、GOOGLEでは検索されるのに、yahoo!では検索されません。 Googleではビッグキーワードでも上位表示されています。yahoo!でも同じキーワードで上位表示されていた時期もありますが、ある日突然yahoo!では引っかからなくなります。それも一つのサイトではなく、私の運営している複数のサイトでです。とりあえず例として、一つのサイトを載せておきます。 http://www.pu-t****.com/ このサイトはgoogle検索だと検索すると、1番目に表示されています。しかし、yahoo!から検索での訪問者は、この4ヶ月でたったの12でした。 指摘いただけると助かります。よろしくお願いします。
- 締切済み
- レンタルサーバ・ASP
- 中規模検索エンジンへのインデックスについて
Yahoo!・Google(大手)などであれば、サイト作成から1~2週間でインデックスされますが、 goo・livedoor(中規模)などにはなかなかインデックスされません。 この差は、検索エンジンの性能差によって生じると考えて良いでしょうか? また、これらに早くインデックスさせる方法などは無いものでしょうか? 回答お願い致します。
- ベストアンサー
- その他(インターネット・Webサービス)
お礼
回答ありがとうございました。 Ceek.jpは知りませんでした。これはすごい。個人経営でこれほどのシステムをどのように構成、管理しているのでしょうか?疑問です。 ところで質問です。 Ceek.jpのニュース版のようにいくつか巡回するサイトを指定し、更新されたら見やすくHTMLファイルを作成しほかのサイトに見出しやリンクなどを表示できるようなシステム構成は難しいでしょうか?