プログラミング初級者です。
Windows環境で、PHP、データベースMySQLにて、検索サイトを練習で作っていますが、フリーで何か良い検索エンジンのプログラムはありますか?
書籍の検索サイトをつくっていまして、商品データは4万、商品のタイトルは長くても30文字、説明文は長いもので1000文字くらいのデータで、検索クエリに対して、単純にSQL文、LIKEでタイトルか説明文にワードが含まれているもの(ヒットしたもの)を画面に表示できるようにはなりました。
一応動くことが確認できたので、商品数を15万にふやしたところ、いきなり動作が重くなり、タイムアウトで画面が表示されなくなってしまいました。
SQL分のLIKEで呼び出すには処理能力に限界があり、ちゃんとした検索プログラムを組み込まないと高速に処理できないのかな?と思っています。
(そもそも、組み込んで使えるようなプログラムがあるのかもわかりませんが。。)
最終的には300万商品くらいは検索できるサイトにしたいと思ってまして、何か良いフリーの検索プログラムや、参考になりそうな書籍があれば是非ご紹介お願いいたします。
初級者なので、適切な質問になっていないかもしれませんが、お分かりのかた、アドバイスくださいませ。
No.2ベストアンサー
- 回答日時:
検索を早くする方法はいくつかありますが環境がわからない為
1.Indexを張る。
2.検索結果を別ファイルで持つ。
3.テーブル構成を変える。
4.DBサーバのスペックを変える
5.作り方にもよりますがプログラム側で取得したデータのJoin等を行う。
等々があります。
時間があるようでしたら
夢幻
http://www.yumemaboroshi.net/
で似たようなサイトをダウンロードしてどういう作り方をしているか見てみてはどうでしょう?
ご回答ありがとうございます。
インデックスという考え方を知りませんでした。まずはそのあたりを勉強することで前進しそうです。またそもそもテーブル構成もパフォーマンスをまったく意識していなかったので、改善の余地がありそうです。勉強すべきポイントが見えてきました。ありがとうございました。
No.1
- 回答日時:
>単純にSQL文、LIKEでタイトルか説明文にワードが含まれているもの
インデックスは設定していますか?
LIKEは前方一致もしくは後方一致である程度のスピードが期待できます。
前方・後方一致では必ずしも有効な処理が期待できませんのでご注意ください
>説明文は長いもので1000文字くらいのデータ
とありますが、この長さになるとヒットさせるのであれば
全文検索で処理する必要がありそうです。
ただ英語と違って単語の一つ一つが独立していない日本語での全文検索は
それなりに下処理が必要なので、いろいろ学習していただく必要があります。
場合によっては単なる説明分ではなくキーワードを任意に羅列した方が
よいかもしれません
ご回答ありがとうございます。
インデックスは設定しておらず、またそういう設定ができること自体お恥ずかしながら知りませんでした。まずはここからじっくり勉強してみます。
キーワードの羅列、のところですが、長い文章を簡単な処理で単語単位に区切ってくれるような便利なものって何かあるでしょうか?トークナイザーというのを勉強すると良いのかな?と思ってますが、違いますでしょうか?もし何かご存じでしたらご教授いただけると嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) パイソンでのプログラミングについて 3 2022/08/11 20:31
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- その他(プログラミング・Web制作) ロボットの作り方を教えて下さい! なにも知らない素人です。 全て自作する場合、どうすればよいでしょう 6 2022/12/18 01:25
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- メルカリ ジャンク品を高値で出品する人は何故? メルカリやヤフオクで ジャンク品なのに相場くらいの強気な価格 4 2022/10/01 00:31
- その他(SNS・コミュニケーションサービス) Yahoo!とGoogle検索のしくみの違いを教えてください 2 2022/08/14 01:53
- ヤフオク! ヤフオク タイトル 隠し技? 裏技? 1 2023/04/25 06:09
- メルカリ <メルカリShops>消費者庁による販売許可の出ている機能性表示食品?の調べ方から 1 2022/11/24 17:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPで名寄せするには?
-
php に関して質問です。 各ユー...
-
飛び先のランダムURLの取得方法...
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
excel access連携 このテーブル...
-
【C#】DataGridViewの最大列数...
-
phpでcookieがうまく保存されない
-
小数点以下0の非表示
-
ブラウザを閉じた後もセッショ...
-
format関数について
-
Excel VBA:特定の文字列以降(...
-
ミュージックのアートワークを...
-
バッチファイルでpingの結果を...
-
1ヶ月後の日付を出力したい
-
WordでExcelデータを差込...
-
ログイン画面をはさんだ後、自...
-
switch()文で値の大小比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
POSTで受け渡したものを保存し...
-
ログイン画面から入って、「戻...
-
ブラウザバックしてもチェック...
-
php 入力画面から確認表示画面...
-
HTMLフォームのデータ引き継ぎ...
-
VBAで重複チェックの仕方を教え...
-
php history.back()の戻るボタ...
-
セッション使用時のフォームの...
-
HTMLエスケープすべき場所につ...
-
PHPで返信メールにチェックボッ...
-
閉じるボタン「×」を制御したい
-
HTMLエスケープ処理とデーター...
-
携帯サイトにお気に入りに登録...
-
ウェブアプリの設計に問題がな...
-
セッションを使用したページ遷移
-
入力系のプログラミング手法に...
-
GETとPOST
-
asp.netでのセッションを使用し...
-
フォームを使わずにPOST送信す...
-
PHPでのログイン機能でのメール...
おすすめ情報