SharePoint 2013 プレビュー : 検索 REST API 基礎編


SharePoint 2013 プレビューでは、新たにエンタープライズサーチ機能を含めた REST API が提供されます。エンタープライズサーチ機能に関して言えば、SharePont 2010 までの検索 Web サービスから、ここで記載する検索 REST API の利用が推奨されることになる予定です (検索 Web サービスは ‘Deprecated’ 扱い)。

REST API の種類とアクセス ポイント

まずは、SharePoint 2013 プレビューの REST API に、どんな種類があるか、アクセス ポイントと共に見てみましょう。

種類 アクセス ポイント

サイト コレクション

http://server/site/_api/site

サイト http://server/site/_api/web
ユーザー プロファイル http://server/site/_api/SP.UserProfiles.PeopleManager
検索 http://server/site/_api/search
発行 http://server/site/_api/publishing

Programming using the SharePoint 2013 REST service (英語)
http://msdn.microsoft.com/ja-jp/library/fp142385(v=office.15).aspx

検索 REST API の種類とアクセス ポイント

次に、検索 REST API には、以下の 3 つのメソッドがあります。

メソッド エントリ ポイント 概要
query http://server/site/_api/search/query HTTP GET による検索結果の取得
postquery http://server/site/_api/search/postquery HTTP POST による検索結果の取得
suggest http://server/site/_api/search/suggest HTTP GET によるクエリー候補の取得

3.1.5.9 Microsoft.Office.Server.Search.REST.SearchService
http://msdn.microsoft.com/en-us/library/hh626294(v=office.12)

query メソッドのパラメーターと実行例

一番よく利用するであろう query メソッドには各種パラメータがあります。以下にほんの一例を挙げますが、詳細は以下のリンク先を参照してください。

パラメータ名 デフォルト値 概要
querytext string (空) 検索キーワード。’’ で括り、値は UTF-8 文字コードを URL エンコードします
startrow integer 0 検索結果の何番目から取得するか (最初は 0)
rowlimit integer 10 最大何件の検索結果を取得するか
refiners string (空) 取得する絞込みを ‘,’ 区切りで記載する
sortlist string (空) 検索結果を並び替える管理プロパティ名
enablefql boolean false FAST クエリ言語を利用する場合に true を指定

とりあえず、どのような検索結果が戻ってくるか確認するために、Web ブラウザで以下のような URL (検索キーワード「マイクロソフト」で検索し、検索結果の 12 番目から 3 個の検索結果を取得) で開いてみると、XML で結果が取得できることがわかります。

http://server/site/_api/search/query?querytext=’%e3%83%9e%e3%82%a4%e3%82%af%e3%83%ad%e3%82%bd%e3%83%95%e3%83%88’&startrow=11&rowlimit=3

image

3.1.5.9.2.1.2 query
http://msdn.microsoft.com/en-us/library/hh630377(v=office.12)

サンプル コード

REST でコールしますので、Atom 形式の検索結果をそのままパースして利用するのは非効率かもしれません。実際のアプリケーション構築時には、JSON (JavaScript Object Notation) 形式で取得 (HTTP リクエストのヘッダーに「Accept: application/json」を指定するだけです) し、JavaScript ライブラリで値を取得する、といった方法が考えられますが、開発者向けの Office Developer Center にはサンプル コードがありますので、以下からダウンロードして参照してみてください。

SharePoint 2013: Using the search REST service from an app for SharePoint
http://code.msdn.microsoft.com/office/SharePoint-2013-Perform-a-1bf3e87d

広告