2008年2月7日

 Live Search APIが正式版(1.0)になってからちょうど1年が経ったところみたいですね。現在はSOAPを通信に利用していますが、今後はRESTのWebサービスも登場してくるようです。

 さて、Live Search APIでは検索だけではなく単語の修正候補も取得することができます。英語ではspelling suggestionsと表現されていますが、日本語にも対応しています。例えばLive Searchで「窓の森」と入力すると「窓の杜」が修正候補として表示されます。

窓の杜ちゃうん?

 この修正候補が表示されるかどうかはカルチャ情報が関係しています。Live SearchのURLのクエリにmkt=ja-jpが付いている場合に「foest」と検索しても修正候補は表示されませんが、mkt=en-usの場合は「forest」と修正候補が現れます。

foest!

forestの結果も入れたっすよ

 修正候補をLive Search APIで取得する場合は、SourceRequestオブジェクトのSourceプロパティにSourceType.Spelling指定します。修正候補があった場合は、ResultオブジェクトのTitleプロパティに格納されて返ってきます。カルチャ情報は、SearchRequestオブジェクトのCultureInfoプロパティに指定します。

 

 修正候補を表示するコードを1行で示します。候補がないと例外がスローされますが。

Console.WriteLine((New MSNSearchService).Search(New SearchRequest With {.AppID = "Your Application ID", .Query = "窓の森", .CultureInfo = "ja-JP", .Requests = New SourceRequest() {New SourceRequest With {.Source = SourceType.Spelling, .Count = 1, .ResultFields = ResultFieldMask.Title}}}).Responses(0).Results(0).Title)

オブジェクト初期化子すごい! という話題でした。

posted @ 22:07 | Feedback (3)

 昨日、SOAP関数を使ったLive Search APIの利用について書きましたが、今年1月に同様にSOAP関数から利用したコードを公開しているBlogが既にありました(あいたた)ので紹介します。

 私の以前の記事、PEARのSOAPを使ったものを参考にして頂いたようです。キャッシュ処理も組み入れた、Live Search(PEAR版、SOAP拡張版)およびYahooとGoogleの検索のコードを公開されています。さらに続きの記事ではClass化、Ajax利用と発展しています!

posted @ 21:20 | Feedback (5)