新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
SQL文でデータを検索した時データが1画面に収まらない時の対応方法 伊集院博 さん [ 1月23日(月) 16時44分 ]

    Google検索のように検索文字列を入れて検索ボタンを押すと
    検索結果がブラウザに10件表示されますね。
    表示できない残りのデータは下段に「1 2 3...9 10」のように頁数が表示され、
    クリックするとダイレクトにページの頭だしができますね。
    サーバ側ではおそらくSQL文でデータを抽出していると思いますが...

    これをRPG-CGI+SQL文で実現するためにはどうしたら良いかアドバイス下さい。
    CGIを表示した後ジョブは終了しますのでSQLで検索されたデータは残らないですね。

    しかしGoogle検索では下段の数字のページボタンを押すとちゃんと検索の続きが表示されますよね。
    この仕組が知りたいです。RPG-CGIで実現可能でしょうか?

    RE::検索エンジンの処理構造とは IKD さん [ 1月23日(月) 18時3分 ]

      RPG-CGI でも可能ですが、答を知ればガッカリされると思います。
      実は Google や Yahoo! も その都度、毎回、検索を行っています。
      データの続きはもちろん把握していません。
      ただし Google であれば start=10 (検索結果の 10件目から表示する)
      や Yahoo! であれば b=11 (検索結果の 11件目から表示する) という
      キーワードを 最下部の .... や「次へ」に埋め込んでいるだけという
      単純なものです。
      これは例えば Google の検索結果の「次へ」などのプロパティを
      表示してみればよくわかります。
      また Google や Yahoo! の検索エンジンは、その都度、SQL のあいまい検索のように
      動的に検索しているわけではなく検索ロボットによって回覧しておいて
      検索結果だけの莫大なデータ・ベースを作成しておいて
      これらの検索結果を表示する、というものです。
      System i の開発者が想像するような高度な検索は行っていません。
      従って検索結果が正しいかというと正しいとは言い切れなくなります。

      EnterpriseServer の RPG# ではストートレスな CGI でありながら
      SFL レコードの最後のレコードを読んでから SETGT を行って
      次のレコードを読むような処理構造になっています。
      しかし動的なSQL によるあいまい検索では、SETGT は使うことはできません。
      従って Google や Yahoo! のように毎回、SQL 検索を行ってから
      最初の何十レコードは読み飛ばしてから表示をする、という何とも
      スマートさに欠ける方法しかなさそうです。

      RE::検索エンジンの処理構造とは 伊集院博 さん [ 1月24日(火) 16時41分 ]

        >GoogleやYahoo!のように毎回、SQL検索を行ってから
        >最初の何十レコードは読み飛ばしてから表示をする

        本当にそうなんですか?
        確かにGoogleやYahoo!のパラメータに「start=90」のようにレコード開始番号を持っていますね。
        しかしページをめくる度に毎回最初から検索している割には検索結果が早い気がします。
        AS/400のSQLもこのくらいのレスポンスが出せれば使ってみようと思うのですが。

        検索条件が複雑でない限りSETLLとSETGTを使用したいと思います。

        RE::検索エンジンの処理構造とは IKD さん [ 1月24日(火) 18時44分 ]

          検索エンジンの内部処の方法は( API 以外は) 非公開ですので
          こちらで断定することはできませんがWebデザイナーとの
          協議した結果でも、でもほぼ間違いないと思います。
          Google や Yahoo! ではあまりにも検索が速すぎるのは
          検索結果をあらかじめデータ・ベース化して保管しているとしか
          思えません。
          従って Google や Yahoo! の検索結果は彼らの意にそぐわない
          サイトは検索結果の対象とはならず、検索結果には
          表示されません。

          また、かつては Yahoo! は、検索対象として希望する旨を
          Yahoo! に申請して受け付けられると初めて、検索結果に
          載せてもらえる、というアナログな時代があり検索対象の申し込みを
          受け付ける受付者が電話対応していた時代もあったくらいです。
          ( 実は弊社もメールで Yahoo! に申請したことがあります。)

          またこれは余談ですが Google をホーム・ページに設定した
          ブラウザは動作が非常に不安定になってしまう障害が最近
          あります。
          Yahoo! や MSN などにホーム・ページを変更すると
          この障害は発生しないことから、犯人は Google ではないかと
          気づいた次第です。障害があればぜひお試しください。

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス