MDN のオンサイト検索機能では、外部の検索エンジンで MDN記事を検索した時には得られない多くの機能が提供されます。この記事では MDN検索エンジンを最大限に活用する方法を記します。

基本的な検索オプション

結果をフィルターリングする

MDN の検索クエリーの結果を見るときに、その結果をトピックや、技術レベルや、文書タイプでフィルターリングできます。これは便利で、例えば関連キーワードが複数のコンテキストで出てくるようなメソッドを探している時など; トピックフィルターを使って、最も興味のある API の中の結果だけを見ることができます。このフィルターはページのタグによって、どのページを含む/除くのかを決めています (これがページ作成/編集時に適切にタグ付けするべき理由です)。下記タイプのフィルターを適用できます:

  • トピック: トピックのタグに従って検索結果をフィルターする
  • 技術レベル: Beginner, Intermediate, Advanced タグでフィルターする
  • 文書タイプ: Example, Guide, Tools タグでフィルターする

高度な検索オプション

MDN 貢献者向けに特定のマクロや HTML 属性などを検索できるよう、マクロの出力ではなく生の HTML でページのソースを検索できる高度な検索機能を用意しています。

今のところこの高度な検索用のユーザーインターフェイスは用意しておらず、URL に直接アクセスすることで利用できます。検索結果は通常の MDN の検索結果ページあるいは JSON フォーマットのいずれかで得られます (後者の検索結果は例えば KumaScript などから使うこともできます)。この節ではその使い方を説明します。

注: ここで紹介する検索クエリーは広く利用される目的で作る URL ではありません。ツールやユーティリティから使用するためのものであり、将来変更される可能性があります。クエリーのパフォーマンスも高くない場合があります。

検索クエリーの書式

高度な検索クエリーは検索に適切なパラメータを付けた URL で実行してください。ベースとなる URL は次のいずれかです:

https://developer.mozilla.org/ja/search
通常の MDN 検索結果ページを出力とする場合はこちらを使います。
https://developer.mozilla.org/ja/search.json
JSON 形式で結果を取得する場合はこちらを使います。検索結果の書式については JSON response body format をご覧ください。

これに続けて、欲しい結果を得るには適切なパラメータを追加してください。次のパラメータを組み合わせて利用できます:

q=
マッチする検索クエリー。これは基本検索で使われるパラメーターと同じです。
locale=
検索対象とするロケール。デフォルトではすべてのロケールが対象となります。すべてのロケールを明示的に指定するにはワイルドカード "*" を指定することもできます。例えば、locale=ja とすれば検索結果を日本語だけに絞り込めます。
css_classnames=
検索対象とする CSS クラス名。ページの HTML に少なくとも指定されたクラスが 1 つ以上含まれているページを検索します。
html_attributes=
検索対象とする HTML 属性テキスト。これは前方一致検索です。つまり、指定したテキストが HTML の属性文字列の始めにある場合、検索にマッチします。詳しくは下記をご覧ください。
kumascript_macros=
検索対象とする 1 つ以上の KumaScript のリスト。これをつかって特定のマクロを使った記事を検索できます。例えば、マクロを廃止する場合や、パラメータが変更され既存のページを更新する必要がある場合に便利です。
highlight=
truefalse のどちらかで、既定では true です。検索クエリーにマッチする結果の周りに <mark> 要素を含めるかどうかを決めます。

検索例をいくつか示します。

locale による検索

https://developer.mozilla.org/ja/search?locale=ja

この例では日本語の記事のリストが得られます。言語 (ロケール) 以外での絞り込みはされません。このページの翻訳時点では 12092 ページが見つかります (もちろん翻訳ページは増え続けているのであなたが試すときにはもっと大きな数になっているはずです!)

CSS クラス名による検索

https://developer.mozilla.org/ja/search?locale=ja&css_classnames=smaller

この例では "smaller" CSS クラスを使っている記事のリストが得られます。ページ翻訳時点では 42 ページに絞り込まれます。

HTML 属性文字列による検索

https://developer.mozilla.org/ja/search?locale=ja&html_attributes=style

この例では HTML 要素に "style" 属性が使われている記事のリストが得られます。ページ翻訳時点では 7277 ページが該当します。これらはダメなページで修正されるべきものです。少しずつ標準化したクラスで置き換えていく必要があります。

属性値も含めて検索することはできますが、検索文字列に "=""/" を含める場合にはこれらを URL エンコードする必要があることに注意してください。例えば、www.mozilla.org にリンクしているページは次のように検索します:

https://developer.mozilla.org/ja/search?locale=ja&html_attributes=href%3D%22https%3A%2F%2Fwww.mozilla.org

この検索結果は 80 件になりました。www.mozilla.org にリンクしているページは意外と少ないですね!

KumaScript マクロ利用有無による検索

https://developer.mozilla.org/ja/search?locale=ja&kumascript_macros=unimplemented_header

この例では unimplemented_header マクロを使用しているページを検索します。ページ翻訳時点では 7 ページが見つかります。マクロパラメータ変更時の修正やマクロ廃止時 (この検索例がまさにその例ですが) にはこの機能を使ってマクロを検索します。

JSON レスポンスボディの書式

JSON で検索結果を取得する場合も、通常の検索結果ページ同様に数件ずつのページ単位で結果が返されます。各ページには検索結果に関するメタデータが含まれる KumaScript オブジェクトと、通常のページオブジェクトにページ編集用の URL フィールドが追加されたものの配列が返されます。

結果のオブジェクトに含まれるデータは次の通りです:

count
検索結果の総数
next
検索結果の次ページ URL (あるいは最終ページの場合は null)
previous
検索結果の前ページ URL (あるいは最初のページの場合は null)
query
結果を検索するのに使われた検索クエリー
page
このオブジェクトに含まれる検索結果ページ番号
pages
検索結果ページの総数
start
このページの結果のうち最初の項目の番号
end
このページの結果のうち最後の項目の番号
filters
さまざまな検索フィルターの設定を含めた配列。通常の検索に利用可能なフィルターです
documents
マッチしたページの ページオブジェクト の配列

ページオブジェクト

各ページオブジェクトには次のものが含まれます:

title
記事タイトル
slug
記事のスラグ。ページの URL のうち、ロケール名とスラッシュに続くものすべてです。
locale
ページのロケール
excerpt
ページコンテンツの断片 (スニペット)。これは記事本文の冒頭部分か、"SEO Summary" クラスが使われていればそのクラスで指定されたコンテンツ。検索クエリーパラメーター内で highlight=false を指定しない限り、excerpt には <mark> 要素が入ります。
url
ページの完全な URL
edit_url
ページを編集モードで開く完全な URL
tags
ページのタグの配列
score
検索エンジンで割り当てられたスコア値
explanation
検索クエリーにどのように何故マッチしたかという検索エンジンからの雑多な情報。このコンテンツの詳細についてはこのページでは解説しません。

関連情報

スラグが特定の文字で始まっているページを検索するような、追加の管理者のみの検索機能があります。

 

ドキュメントのタグと貢献者

このページの貢献者: Uemmra3, hamasaki, dynamis
最終更新者: Uemmra3,