コンテンツ検索 Web パーツの概要

原文の記事の投稿日: 2013 年 1 月 9 日 (水曜日)

こんにちは。SharePoint エンタープライズ コンテンツ管理チームのプログラム マネージャー、Kerem Yuceturk です。SharePoint 2013 に追加された最も興味深い機能の 1 つであるコンテンツ検索 Web パーツと、世界中の SharePoint ファンのためにこの機能が実現する数多くのシナリオをご紹介できることを本当にうれしく思っています。

コンテンツ検索についてお話しする前に、その背景知識として、この Web パーツの目的を簡単にご説明します。SharePoint 2007 や 2010 で発行のシナリオ (イントラネット ポータルやナレッジ マネジメント ソリューションの作成など) を扱ったことのある方は、コンテンツ クエリ Web パーツを使っていたのではないかと思います。コンテンツ クエリは、設定した一連の条件に基づいて動的なコンテンツを表示するのに便利です。そのため、イントラネットのホーム ページにニュース記事の一覧を表示したり、売上報告書の一覧をナレッジ センターにまとめたりするには、コンテンツ クエリが使われていました。

しかし、コンテンツ クエリには、同じサイト コレクションにないアイテムを表示する場合には使えないという問題がありました。コンテンツ クエリ Web パーツのスコープは、その Web パーツが配置されているサイト コレクションに制限されていたからです (現在もそうです)。

SharePoint 2013 では、FAST Search と SharePoint 検索が融合して、SharePoint に緊密に統合されました。この変更の一環として、サイト コレクションに制限されないコンテンツをイントラネット サイトやインターネット サイトに発行するための新しいツールが追加されました。それがコンテンツ検索 Web パーツです。

コンテンツ検索では、複数のサイト コレクションにまたがるコンテンツも含め、検索インデックスに配置されているものなら何でも表示できます。SharePoint の外部のコンテンツも、クロールされて検索インデックスに配置されていれば表示できます。クロールされたコンテンツは、元の場所に関係なく、すべて表示できます (ページを表示するユーザーにそれを表示するためのアクセス許可がある場合)。さらに、SharePoint 2013 には分析機能が組み込まれているため、使用パターンに基づいておすすめ候補や人気のあるアイテムを表示することもできます。

この機能を試してみたくなった場合、SharePoint ファームでコンテンツ検索を使用するには、Web パーツ追加機能に移動して、 [お勧めのコンテンツ] カテゴリを選択します (コンテンツ検索は、現在 Office 365 では使用できません。今後使用できるようになる予定です)。

図 1. コンテキストの異なる 2 つのコンテンツ検索 Web パーツ: 左側は、別のサイト コレクションの PowerPoint ファイルを表示するイントラネット サイトで、右側は、製品カタログのアイテムを表示する Contoso Electronics サイトです。

 

コンテンツ検索は、ごく大まかに言うと、次の 2 つの手順を実行するだけで簡単に使用できます。

  1. 表示するアイテムを選択します (それらのアイテムを結果として返す検索クエリを作成します)。
  2. アイテムを目的に合わせて書式設定します (表示テンプレートを使って外観をカスタマイズします)。

以降では、この 2 つの手順についてもう少し詳しく説明します。

表示するアイテムを選択する

コンテンツ検索 Web パーツには、作業の開始点として使用できる構成済みのクエリと、結果をプレビューしてクエリを調整するためのパネルを備えた、全画面表示のクエリ ビルダーが用意されています。検索先、クエリ ルールなどの SharePoint 2013 の新しい検索概念と完全に統合されているため、それらを使って結果を取得できます。そのほか、詳細モードも用意されています。これは、基本的には拡張された検索ボックスで、キーワード クエリ (KQL) 構文を使って任意のクエリを作成できます。作成したクエリは、プレビュー パネルを使って試すことができます。

図 2. 左側にツール、右側に結果のプレビューが表示されているクエリ ビルダー

 

コンテンツ検索では、クエリで使用できる動的な値 (クエリ変数) も数多くサポートされています (今日の日付、現在のユーザーの名前、現在のページのフィールド、現在の Web のプロパティ バッグのカスタム プロパティなど)。クエリ ビルダーと動的な値は、それぞれ個別のブログ投稿で取り上げるに値するトピックですが、さしあたり、どのようなことができるのか試してみたい方は、以下のクエリ変数をクエリで使ってみてください。

{Today-7} : 1 週間前の日付。"今週の新着情報" のクエリに便利です。
{User.Name} : 現在のユーザーの名前。ページを表示しているユーザー向けのコンテンツを提示する際に便利です。任意のプロパティ (現在のユーザーのプロファイルのカスタム プロパティを含む) に対しても使用できます。
{Page.MyCustomTextField} : ページで使われているコンテンツ タイプに追加したフィールドの値を取得します。
{Site.URL} : 現在のサイトの URL (または任意のカスタム プロパティ) を取得します。SiteCollection に対しても使用できます。
{Term} : 管理ナビゲーションの現在の用語。詳細については、FURL に関するブログ投稿を参照してください。

アイテムを目的に合わせて書式設定する: 表示テンプレート

お客様から繰り返し指摘されたコンテンツ クエリ Web パーツの主要な問題の 1 つは、出力の書式設定に XSL を使わなければならないことでした。XSL は比較的あいまいな Web テクノロジで、結果を書式設定する際にちょっと変わったことをしようとすると熟練のユーザーでも構文について頭を悩ますことで知られています。

SharePoint 2013 では、コンテンツ検索 Web パーツに表示されるアイテムの書式設定に、XSL ではなく HTML と JavaScript を使う新しい方法が導入されています。それが表示テンプレートです。

表示テンプレートにより、次のような作業が格段に簡単になります。

  • 検索から取得する管理プロパティを指定する。
  • 取得した管理プロパティの値を必要に応じて JavaScript で操作する。
  • 値をブラウザーで HTML を使って表示する。

図 3. 3 つの異なる表示テンプレートを使って表示した同じ検索結果

 

表示テンプレートは、サイト コレクションのマスター ページ ギャラリーにあります。[表示テンプレート] というフォルダーに、いくつかの表示テンプレートがあらかじめ用意されています。表示テンプレートがどのようなものか知りたい方は、このフォルダーをのぞいてみてください。新しい表示テンプレートを作成する際には、既存のものをコピーして、そのプロパティとコンテンツを変更することをお勧めします。フォルダーに含まれているファイルのうち、操作するのは常に .html ファイルです。.js ファイルは、同じ名前の .html ファイルを変更すると自動的に生成されます。

表示テンプレートも、本来は別のブログ投稿で取り上げるべきトピックです。これ以上続けるとこの投稿が長くなってしまうので、これで終わりにします。

まとめ

ここでは、SharePoint 展開でコンテンツ検索 Web パーツを使ってできることを大まかに説明しました。ここで紹介した概念のいくつかについては、今後の投稿で詳しく説明します。

これはローカライズされたブログ投稿です。原文の記事は、「Introducing the Content Search Web Part」をご覧ください。