すべてのカテゴリ » インターネット・パソコン » インターネットサービス

質問

終了

ライフマイルの検索窓に「Q&Aで貯める」と入力して検索しました。が、「Q」の検索結果がずらずらと出てきてびっくりしました。なぜちゃんと検索できないのでしょうか?

  • 質問者:けんさくん
  • 質問日時:2008-09-03 07:39:18
  • 0

「&」のエスケープが行われていない事による不具合です。

「Q&Aで貯める」と検索すると、URLが以下のようになります。
http://search.lifemile.jp/?Keywords=Q&Aで貯める

後ろの「Keywords=Q&Aで貯める」が「Keywordsは"Q&Aで貯める"」と言う事を表しています。
こういった物を引数と言います。
引数を複数指定した場合、「&」で連結します。
例えば、「Keywords1=abc&Keywords2=def」と書くと
「Keywords1は"abc"で、Keywords2は"def"」と言う意味です。

今回は検索ワード自身に「&」が含まれているので、
「Keywordsは"Q"で、引数不明の値は"Aで貯める"」と判断されます。
「Aで貯める」は、どの引数に代入するか指定されていないので無視されます。
なので、最終的に「Keywordsは"Q"」として「Q」だけで検索されてしまいます。

こういった事が起こらない様に、文字としての「&」を使いたい時は
「%26」という形に変換して使います。これをエスケープと言います。
当然変換するのはサーバ側なので、ユーザは気にしなくていいところです。
試しに「Q%26Aで貯める」で検索してみてください。ちゃんと動くはずです。

しかし、これはライフマイルに報告した方が良いでしょうね。
こんな凡ミス、技術者としたら恥ずかしい限りですよ。

  • 回答者:元システム屋 (質問から38分後)
  • 53
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

大変詳しい回答をありがとうございます。&が入っているだけで全然違う意味になるとはわかってなかったです。ライフマイルに連絡します。

並び替え:

検索エンジンは単語ごとにorで検索しますのでQとAと貯めるの3つの単語と判断されたんだと思います。
クォーテーションで全体を囲めばその文章全体を検索できます。

  • 回答者:検索 (質問から14分後)
  • 2
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

回答ありがとうございます。&の使い道を知らずにいました。””がクォーテーションマークですね。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る