質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Q&A

解決済

1回答

1285閲覧

インターネット上のデータベースを検索するには?(検索エンジン)

Kelvin

総合スコア34

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

0グッド

0クリップ

投稿2016/11/21 11:02

丸投げな質問になってしまい申し訳ありません。
「検索エンジン 作り方」等で調べてみたのですが予想以上に実際にやってみた方が少ないようで解説しているサイトは見つかりませんでした。

###作ってみたい物の仕様
クローラー?を作ってすべてのWebサイトを見つけてくるものではなく、
自分で作ったタイトルとURLがセットになったデータ(このようなデータが作れるのかわかりませんが)から目的のものを出してきて検索結果として別のページに誘導して表示。(ようはGoogleと同じ仕様でデータベースから取り出してくるところだけが違います)

###質問
上記のような仕様の検索エンジンサイトを作るにはどうすればいいでしょうか?

学習用にどのような仕組みでできているかが知りたくて、作ってみたくなったので申し訳ありませんが、ソースコードぽんっ!と載せて終わり、というよりどこのサイトが参考になるか等を教えていただけると嬉しいです。

読みにくい文章になってしまい申し訳ありませんがよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/11/21 11:31

Google は定期的にクロールしてるが、検索結果はデータベースからだよ
Kelvin

2016/11/21 11:34 編集

ということは僕が聞いているのは普通の検索エンジンということになりますか?
guest

回答1

0

ベストアンサー

検索エンジンサイトを作るにはどうすればいいでしょうか?

まず、原始的なツールからスタートしましょう。

ruby

1s = 'hello world' 2p s.index('ll') #=> 2 3p s.index('rr') #=> nil

言語の指定がないので、上は私が慣れてるRubyで書きましたが、
文字列探索のメソッドを使えば、特定の文字列の位置を探せます。


自分で作ったタイトルとURLがセットになったデータ
(このようなデータが作れるのかわかりませんが)

ruby

1title = ['com','cpu','cord'] 2url = ['a.jp','b.co','c.com'] 3keyword = 'co' 4result = [] 5 6title.each_with_index do |item, ind| 7 if item.index(keyword) 8 result << ind 9 end 10end 11 12result.each do |ind| 13 puts title[ind] 14 puts url[ind] 15 puts 16end

これは上のように、配列やハッシュなどでかんたんに作れますので、
ループで回して探せばいいわけです。

文字列探索の結果も配列などで返し、それを整形して表示すれば、
エンジンと呼ぶほどではないですが、検索ツールではあるでしょう。


もちろんこれは、検索システム制作のほんの入口でしかありません。

この後は、HTMLで表示する、SQLなどデータベースを使う、
サーバ上で実装してWebサービスにする、検索を高速化する、
Nグラムや形態素解析でインデックスを構築する……、
など高機能にしていけば、実用性も高まっていくでしょう。


学習用にどのような仕組みでできているかが知りたくて

ある程度専門性の高いものは、ネットでちょこっと検索しただけですぐ作れないので、
いろいろな要素をさまざまな方法で、じっくり調べる必要があります。

たとえば、高度な検索を実現するには、自然言語処理などの基礎知識が必要になってきます。
前述のNグラムや形態素解析などは、典型的な自然言語処理の分野です。

さいわい、検索エンジンに関する本も、自然言語処理の本もありますので、
かんたんなツールを作った後に、少しずつ高度化させていくと良いと思います。

投稿2016/11/21 14:54

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問