Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Movable Type 7 ManualMovable Type 7 マニュアル

記事とウェブページの検索の概要

最終更新日: 2019.07.03

サイトに検索フォームを設置することで記事とウェブページを検索できます。

検索に利用する CGI スクリプト

記事とウェブページの検索は mt-search.cgi を利用します。Movable Type 7 から用意されている mt-cdsearch.cgi で検索することはできません。

mt-search.cgi のスクリプト名は、SearchScript 環境変数で変更できます。

PSGI 環境においては、CGI ファイル名を変更しただけではスクリプトファイル名の変更が行われません。必ず SearchScript 環境変数で新しいスクリプト名を指定してください。

検索対象

検索対象となるオブジェクト

mt-search.cgi による検索では、記事とウェブページが検索対象になります。

検索対象となるフィールド

記事とウェブページの中の以下のフィールドに入力された内容を検索します。

  • タイトル
  • 本文
  • 続き
  • キーワード

半角スペース区切りで複数の検索ワードを指定した場合は AND 検索になります。

日付範囲の指定

「公開日」の日時を使用して範囲検索ができます。

検索する範囲は、archive_type パラメーターにアーカイブタイプ名を指定することで決定されます。例えば、archive_type=Yearly と指定した場合は、year パラメーターで指定された年の記事とウェブページが検索されます。指定したアーカイブタイプでどの範囲が検索されるかは、以下のルールに従います。

  • archive_type に Daily が含まれる場合、指定した日に検索範囲を絞る
  • archive_type に Weekly が含まれる場合、指定した日を含む週に検索範囲を絞る
  • archive_type に Monthly が含まれる場合、指定した日を含む月に検索範囲を絞る
  • archive_type に Yearly が含まれる場合、指定した日を含む年に検索範囲を絞る

また、日付の範囲指定に関連するパラメータは下表のとおりです。

パラメーター 必須 説明
archive_type 必須 有効なアーカイブタイプを指定して検索範囲を決定します。
year 必須 検索範囲の「年」の部分を指定します。
month 検索範囲の「月」の部分を指定します。省略された場合「01」がセットされます。
day 検索範囲の「日」の部分を指定します。省略された場合「01」がセットされます。

検索結果のソート

mt-search.cgi の検索では、検索結果のソートと並び順の指定に SearchSortBy と SearchResultDisplay パラメーターを使用します。各パラメーターが指定されていない場合は、環境変数 SearchSortBySearchResultDisplay の内容が利用されます。

指定できる値は以下のとおりです。

SearchSortBy

  • authored_on
    記事やウェブページの「公開日」の日時でソートします。
  • author_id
    記事やウェブページの作成ユーザー ID でソートします。
  • basename
    「出力ファイル名」でソートします。
  • comment_count
    記事やウェブページが受信したコメントの件数でソートします。
  • created_on
    記事やウェブページの作成日時でソートします。
  • excerpt
    記事やウェブページの「概要」でソートします。
  • modified_on
    記事やウェブページの変更日時でソートします。
  • ping_count
    記事やウェブページが受信したトラックバックの件数でソートします。
  • text
    記事やウェブページの「本文」でソートします。
  • text_more
    記事やウェブページの「続き」でソートします。
  • title
    記事やウェブページのタイトル(件名)でソートします。

SearchResultDisplay

  • ascend
    古い方(小さい方)から順に表示します。
  • descend
    新しい方(大きい方)から順に表示します。

検索結果テンプレート

mt-search.cgi での検索結果は、特に指定がない場合は type が「search_results」であるテンプレートが利用されます。

検索時に設定できるパラメーター

mt-search.cgi での検索では、以下のパラメーターを指定することができます。大文字小文字は区別されます。

IncludeBlogs

検索対象にするサイトの ID(blog_id)をカンマ区切りで指定します。

ExcludeBlogs

検索対象にしないサイトの ID(blog_id)をカンマ区切りで指定します。

SearchSortBy

検索データをソートするフィールドを指定します。

SearchResultDisplay

検索データのソート順を指定します。

Template

検索結果テンプレートのフォーマットを指定します。 値には、mt-config.cgi に記述した SearchAltTemplate で設定したフォーマット名を使用します。 例えば、mt-config.cgi での SearchAltTemplate の設定が以下の場合、このテンプレートファイルを検索結果の表示に使用するには Template パラメーターの値を work にします。

SearchAltTemplate work work.tmpl

archive_type

範囲指定するとき、対象となるアーカイブタイプを指定します。

author

記事・ウェブページの作成者でフィルタリングする場合、ユーザーの表示名を指定します。

blog_id

検索のベースになる blog_id を指定します。template_id や Template パラメーターが未指定の場合、blog_id で指定したサイトの検索結果テンプレートが検索結果の表示で利用されます。

category

検索結果をカテゴリ、フォルダでフィルタリングする場合、それらの名前を指定します。(ベースネームではありません)

class

検索結果を記事・ページでフィルタリングします。記事の場合は entry 、ウェブページの場合は page を指定します。

limit

1 ページあたりの検索数を指定します。

day

日付範囲指定の「日」を指定します。

filter

検索対象フィールドを変更します。 デフォルトではタイトル(title)、キーワード(keywords)、本文(text)、続き(text_more)が検索対象ですが、この検索対象を上書きします。 複数指定はカンマ区切りではなく、クエリパラメーターを複数指定します。

mt-search.cgi?search=検索ワード&IncludeBlogs=9&limit=20&filter=title&filter=keywords

limit_by

search パラメーターによるキーワード検索の際、複数の検索ワードを半角スペースで区切ったときの検索条件を指定します。

  • all (デフォルト)
    • AND 検索(指定したすべての検索ワードを含む)
  • any
    • OR 検索(指定したいずれかの検索ワードを含む)
  • exclude
    • AND NOT 検索(指定したどの検索ワードも含まない)

month

日付範囲指定の「月」を指定します。

offset

検索結果のうち、スキップしたい件数を指定します。

page

検索結果が複数ページに分かれる場合、表示したい検索結果ページの数値を指定します。

search

検索する文字列を指定します。

tag

タグ検索の文字列を指定します。

template_id

検索結果の表示に利用するテンプレートの ID を指定します。

year

日付範囲指定の「年」を指定します。

関連するテンプレートタグ

こちらのテンプレートタグリファレンスをご参照ください。

関連する環境変数

こちらの環境変数リファレンスをご参照ください。

目次