• ベストアンサー

Ruby あるサイト内のキーワード部分を出力

プログラミング初心者なのですが、あるサイト内のキーワードが載っているページを表示されるようなプログラミングを組んでみたいのですが、どうしたら良いでしょうか? 例えば、化粧品の会社が沢山紹介されているサイトで、「美白」とキーワードを入れると、「美白」というキーワードが入った会社がすべて表示される。といったものです。 どうやって作っていったらよいのかわからないので、プログラムとそのプログラムの解説を頂けると、とても助かるのですが、無理なようでしたら、参考になるサイト等ありましたら、教えてください。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

文章の検索方法ですが、実際には *SQL文を作ってデータベースに問い合わせをする *全文検索エンジンに問い合わせる 上のいずれかになると思います。 今の状態だと、Webサイトの作製法自体を教える必要がありそうですが プログラム言語の知識以外に、サーバーの構築・運用やWebフレームワークの使い方等伝えるべき分量が半端ないので、そのあたりはスキップして、検索部分だけ、簡単に説明だけします。 検索機能などを実装している、Webサイトだと、実際の文章のデータなどは、すべてデータベースに格納されているが普通なので、SQLというデータベースへの問い合わせ言語を使って、データベースに問い合わせて返ってきた結果を、Webページに表示します。 例えば、商品一覧(products)の商品説明(content)か商品名(title)に「美白」が含まれているものを探してくる場合は、次の様なSQLを送って、結果を返してもらいます。 SELECT id,title,content FROM products WHERE title LIKE '%美白%' OR content LIKE '%美白%'; ただ、SQLのLIKE文で検索を行う場合、データベースのデータを全部なめて探すのは負荷のかかる作業なので、数十万件という多くの商品のあるシステムの場合は、全文検索エンジンというシステムを使って、あらかじめ、単語毎に検索結果をまとめておいて、そこに対して検索をかけるのが一般的ですね。 代表的な全文検索エンジンは、やはりSolrでしょうか。 http://ja.wikipedia.org/wiki/Apache_Solr 個人的にはSQL文の検索で動くシステムを作って、その後、切り替えるべきならSolrに切り替えていくといいと思います。

moxafan
質問者

お礼

回答ありがとうございます。 SQLをしっかり覚えないといけないですね。 SQLは少し勉強したので、回答者さんの言っていることはわかります。 SQLでプログラムをしてみようと思います。その上で、Solrに切り替える方法をとりたいと思います。 Solrはよくわからないので、調べて勉強してみたいと思います。 参考URLもつけて下さり、ありがとうございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

どうやって作るかの方針だけアドバイスします。 あなたが手を出さずに、言葉だけで指示して他人にPCを操作させ(例えば遠隔地にいる人にあなたは画面が見えない状態で電話だけで情況を聞き、指示するイメージ)、望み通りの結果が得られるレベルまで、やりたいことを具体化して表現できれば、それをプログラムに直せば良いです。

moxafan
質問者

お礼

アドバイスありがとうございます。 ネットで検索するのですが、ピンポイントで作り方を見つけることができなかったので、質問させて頂きました。 自分で手と頭を動かさないといけないのは、わかっているのですが、どこから手をつけたらよいのかもわからないほどの初心者です。申し訳ないです。 アドバイスありがとうございました。