Movable Type Data APIの使い方:検索

Movable Type Data APIの使い方:検索

Posted at February 25,2015 12:55 AM
Tag:[DataAPI, MovableType, Search]

Movable Type 6から提供されているData APIの使い方を紹介します。

本エントリーでは、JavaScript SDK APIのsearch()を使った検索方法について解説します。

このAPIはMT6.1から有効です。

なお、REST形式で実行する場合は次のとおりです。

テキスト検索の場合

http://user-domain/mt-data-api.cgi/v2/search?search=hoge&IncludeBlogs=2&limit=5&SearchSortBy=authored_on&SearchResultDisplay=descend

タグ検索の場合

http://user-domain/mt-data-api.cgi/v2/search?tagSearch=1&search=hoge&IncludeBlogs=2&limit=5&SearchSortBy=authored_on&SearchResultDisplay=descend

クエリーの意味については本文を参照願います。

1.基本

search()は、記事・ウェブページの検索を行うためのAPIです。

search()を使って検索を行うための簡単なサンプルを紹介します。

<script>
// API生成コード等は省略
 
$('#search').click(function(){
    var data = {
        'search': $('#searchTerms').val(),
        'IncludeBlogs': $('#IncludeBlogs').val(),
        'ExcludeBlogs': $('#ExcludeBlogs').val(),
        'SearchSortBy': $('#SearchSortBy').val(),
        'SearchResultDisplay': $('#SearchResultDisplay').val(),
        'tagSearch' : $('#tagSearch').prop('checked')
    };
    api.createField(data, function(response) {
        if (response.error) {
            $('#result').html('エラー:' + response.error.message);
        } else {
            $('#result').html(response.totalResults + '件ヒットしました');
            for (i=0; i< response.items.length; i++) {
                $('#result').append('<li>' + response.items[i].title + '</li>');
            }
        }
    });
});
</script>
 
<ul>
<li><input type="text" id="searchTerms" />検索文字</li>
<li><input type="text" id="IncludeBlogs" />検索対象ブログID</li>
<li><input type="text" id="ExcludeBlogs" />検索対象外ブログID</li>
<li><input type="checkbox" id="tagSearch" />タグ検索
<li>
  <select id="SearchSortBy">
    <option value="" selected="selected">並べ替え</option>
    <option value="created_on">作成日時</option>
    <option value="title">タイトル</option>
  </select>
</li>
<li>
  <select id="SearchResultDisplay">
    <option value="" selected="selected">並べ替え順</option>
    <option value="ascend">昇順</option>
    <option value="descend">降順</option>
  </select>
</li>
<li><input type="button" id="search" value="検索" />
</ul>
<ul id="result"></ul>

JavaScriptライブラリのインクルードやapiの生成については「Movable Type Data APIの使い方(JavaScript SDKを使ったオブジェクトの生成)」を参照してください。

また、エラーのハンドリングについては「Movable Type Data APIの使い方(エラーのハンドリング)」を参照してください。

なお、上記のサンプルでは結果表示処理でjQueryを利用しているので、jQueryのインクルードも行ってください。

2.パラメータ

search()に設定するパラメータは次のとおりです。第2パラメータのdataはハッシュで設定します。

  • data:検索情報(必須)
  • callback:コールバック処理(オプション)

第1パラメータのdataの詳細は次のとおりです。

  • search:検索文字列(必須)
  • IncludeBlogs:検索対象のブログID、複数の場合はカンマ区切りで設定
  • ExcludeBlogs:検索対象外のブログID、複数の場合はカンマ区切りで設定
  • SearchSortBy:並べ替え基準(created_on:作成日時/title:記事タイトル)
  • SearchResultDisplay:並べ替え順(ascend:昇順/descend:降順)
  • tagSearch:タグ検索

3.レスポンス

検索に成功した場合のレスポンスとして、次のようなJSONデータが返却されます。

{"totalResults":"1","items":[{"excerpt":"test...","date":"2015-02-23T23:26:17\u002b09:00","status":"Publish","updatable":true,"author":{"userpicUrl":null,"id":"1","displayName":"mtbook"},"comments":[],"allowComments":true,"permalink":"http://user-domain/2015/02/test.html","keywords":"","body":"\u003cp\u003etest\u003c/p\u003e","trackbacks":[],"id":4,"allowTrackbacks":true,"modifiedDate":"2015-02-24T00:11:28\u002b09:00","trackbackCount":"0","blog":{"id":"2"},"categories":[{"parent":"0","label":"cat1","id":1},{"parent":"0","label":"cat2","id":2}],"tags":["hoge"],"commentCount":"0","assets":[],"basename":"test_1","format":"richtext","createdDate":"2015-02-23T23:26:31\u002b09:00","class":"entry","title":"test","pingsSentUrl":[],"more":"","customFields":[{"basename":"foo1","value":"123"},{"basename":"foo2","value":"abc"}]}]}

totalResultsにヒットした件数、items配下の配列にヒットした記事の情報が設定されます。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)