6月 25
某データベースサイトにて、サイト内検索を行う場合、
- 自スクリプトにて全文検索
- マッチしない場合、Yahoo!Web検索APIで検索
- それでもマッチしない場合は「一致するものがない」メッセージを表示
Yahoo!Web検索APIでは、RESTリクエストに、siteパラメータを設定し、サイト内検索をしていたのだが、どうもおかしい。サイト内に存在するキーワードだった場合は正しく動作するが、サイト内に存在しないキーワードの場合、勝手に外部サイトを対象とする結果を引っ張ってきている模様。(通常のサイトとかwikipediaとか)
RESTクエリのサンプル
http://search.yahooapis.jp/WebSearchService/V1/webSearch?appid=アプリケーションID&query=%e6%b2%96%e7%b8%84&site=example.com
siteパラメータの使い方が悪いのかと、ドキュメントをしばらく読み込んでみたが分からず。
しょうがないので、REST内のsiteパラメータを利用するのではなく、クエリ文字列中に、”キーワード+site:example.com”と、キーワードの一部としてAPIを実行。こうすることで、サイト内でマッチしない場合でも、勝手に外部から結果を持ってこず、指定キーワードはサイト内には存在しない、という処理を実行できた。
しかし、Yahooのサイト内検索ではマッチしないものでも、Googleだとマッチするというのが悔しいところ。Googleの場合、結構な精度で読み仮名も自動的に検索してくれるので、とても便利なのだが…。
Popularity: 2% [?]




