SharePoint ファイル検索 機能を追加する – 検索結果にファイル名を表示する

前回の投稿で、SharePoint の検索画面に 「ファイル」 検索バーティカルメニューを追加する内容をご紹介しました。

今日は関連する内容として、ファイル検索結果の表示形式をカスタマイズする方法をご紹介します。
既定ではファイルが検索にヒットした場合、検索結果として表示される形式は、上図のとおりです。ファイル名のような内容 (上図だと 「サマーセール企画」 とか 「技術資料1」) が表示されていますが、これはファイル名ではなく、ファイルの [タイトル] プロパティです。

[タイトル] プロパティが空白の場合は、ファイル名が表示されますが、ファイル名と [タイトル] プロパティが別々の値の場合、こんな感じに。
SearchDT4
(ファイル名はテスト.docx、タイトル プロパティの 「aaa」が表示されてる)

たとえばファイルのテンプレートがある場合等には、テンプレートにあらかじめタイトル プロパティの値が入っており、それを変更しない場合も多いかと。成果物ファイルのタイトル プロパティの値は入っているけど、意味なない。なんていう場合に、ちょっとうっとうしいです。

ここで、ちょっとだけ検索結果の表示のしくみを。

SharePoint 2013 では検索結果は、検索結果の種類ごと (ファイル、サイト、ひと など) に表示テンプレートが用意されており、表示テンプレートをカスタマイズすることで、検索結果の表示形式を変更できます。

既定でも、検索結果がファイルであっても、パワポの場合と Word の場合、Excel の場合で若干違った表示形式となるのは、それぞれ表示テンプレートが違うためです。
表示テンプレートはマスターページ ギャラリーの [Display Templates] – [Search] フォルダー内に格納されています。
SearchDT2
また検索結果の種類ごとに、どの表示テンプレートを利用するかは、[検索結果の種類] に設定されています。 (下図は、[サイト コレクションの管理] – [検索結果の管理] 画面内)
SearchDT3
SearchDT1

表示テンプレートを新しく作成し、どの検索結果で表示するかといったルールを [検索結果の種類] に登録すると、表示形式にさまざまなバリエーションをもたせられます。たとえば拡張子が●●の場合にはこう表示したい!とか、●●というコンテンツタイプの場合にこう表示したい!とか、このサイト内のコンテンツのみこう表示したい!とか。

検索結果のしくみについては簡単にここまでとしますが、今日はこの表示テンプレートを利用して、検索結果に [タイトル] プロパティではなく [ファイル名] を表示させてみます。

表示テンプレートは、ファイルの場合 Word のもの、Excel のものと、既定でも複数用意されています。Word の場合のみこう変えたい、Excel の場合のみこう変えたい。という場合はそれぞれ対応する表示テンプレートをカスタマイズしますが、今回やりたいことはそうではありません。Word でも Excel でもファイルが検索にヒットした場合に、表示を変更したいのです。そのため、各表示テンプレートのさらにベースとなる Item_CommonItem_Body.html をカスタマイズします。

<手順>

1.マスターページ ギャラリー内の [Display Templates] – [Search] フォルダー内の、
    Item_CommonItem_Body.html を次のように編集します。

    if ($isEmptyString(title)) {title =$htmlEncode(ctx.CurrentItem.Title)} の次の行に下記コードを追加

if(ctx.CurrentItem.FileExtension == "doc"||ctx.CurrentItem.FileExtension == "docx"||ctx.CurrentItem.FileExtension == "dot"||ctx.CurrentItem.FileExtension == "dotx"||ctx.CurrentItem.FileExtension =="xls"||ctx.CurrentItem.FileExtension =="xlsx"||ctx.CurrentItem.FileExtension =="ppt"||ctx.CurrentItem.FileExtension =="pptx"||ctx.CurrentItem.FileExtension=="vsdx"){title=ctx.CurrentItem.Path.replace(/^.*[\\\/]/,’ ‘);} 

※ if 文内のファイル拡張子は、必要に応じて編集、追加ください。 
※ SharePoint Designer 2013 で開いて編集&上書きしてもいいし、ファイルをダウンロードして
      メモ帳等テキストエディターで編集後、上書きアップロードしてもどっちでも OK。

2.上書き保存したら、ファイルをメジャーバージョンに発行してください。

<結果>
SearchDT5

これはサイト コレクション内のファイルに対するカスタマイズです。サイトコレクションごとやサイトごとに検索センターサイトがサイト コレクションをまたいで複数存在する場合、それぞれカスタマイズを適用したいサイト コレクションに対して設定を行ってください。

奥田 うさぎ

SharePoint ファイル検索 機能を追加する – 検索結果にファイル名を表示する」への4件のフィードバック

  1. ピンバック: SharePoint ファイル検索 機能を追加する – 検索結果にファイル名を表示する | クリエ・イルミネート ブログ | ミリオンハイスクール | ネットビジネス | WordPress

  2. いつも大変参考にさせていただいております。
    お時間がありましたら一点確認させて下さい。ファイルの検索結果表示で、以下のような事例になることがあります。

    ファイルのタイトル:<001>Outlookでアーカイブを行う方法
    検索結果:Outlookでアーカイブを行う方法

    なぜかファイルのタイトル頭に記入している付番の<(数字)>の部分が検索結果のタイトルに表示されないものがあります(表示されるものもあります)。

    このような現象は奥田様がこの項目で解説くださっている「Item_CommonItem_Body.html 」の編集で改善させることができるのでしょうか?

    返信
    • こんにちは、弊社ブログを参照いただきありがとうございます。
      上記の内容ですが、ファイルのタイトルとおっしゃっているものが、ファイル名だとすると、検索結果に表示されている内容と異なる理由は、本投稿で改善されると思われます。
      ファイル名とファイルの 「タイトル」 両方に が入っている場合は、また別の理由かもしれません。

      よろしければ、一度お試しくださいませ。

      返信
      • 早速のご返事誠にありがとうございます。SharePointを運用するにあたり、どの参考書よりも、どのサイトよりも重宝させていただいております。

        >ファイルのタイトルとおっしゃっているものが、ファイル名だとすると

        作用でございます。
        ただ、早速試させていただいたのですが、現象変わらずでした。。

        ファイルの「プロパティ」の「タイトル」は空白です。
        <(数字)>を[(数字)]に変えてみたり、(数字)だけにしてみたり、ファイル名の最後尾につけてみたりしているのですが、表示されない記事は何をしても表示されない状態です。

        次はファイルの「プロパティ」の「タイトル」に記入してみて試してみようかと思います(Item_CommonItem_Body.html の記述はデフォルトに戻して)。

        (もしかすると、SharePointのバグなのかな、と思い始めています、、)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中