SharePoint Server のクラシック検索エクスペリエンスでのアイテム表示テンプレートとヒット強調表示のしくみについて
適用対象:2016 2019 Subscription Edition SharePoint in Microsoft 365
この記事では、以下について説明します。
ネットワーク ドライブをマップする方法
表示テンプレートの作業をするときは、ネットワーク ドライブをマップすると便利です。 これにより、エクスプ ローラーから表示テンプレートの作業をすることができます。 その手順については、「ネットワーク ドライブをマップする方法」を参照してください。
管理プロパティの名前を知ることが大切な理由
このシリーズの導入トピックの「検索の仕組みの概要」セクションでは、クロールの際にサイト列やサイト列値が管理プロパティや管理プロパティ値に「変換される」方法について説明しました。 検索結果に新しい情報を追加するには管理プロパティの名前をアイテム表示テンプレートに追加する必要があるため、サイト列を表す管理プロパティの名前を見つける方法を理解していることは重要です。 管理プロパティの名前が付けられる方法が分からなければ、「From site column to managed property - What's up with that?」を参照してください。
紛らわしい。 まあ、絶望しないでください。 このシリーズの後半で、管理プロパティ名を検索して項目表示テンプレートに追加する手順について説明します。
アイテム表示テンプレートの重要な要素について
SharePoint Server での検索結果の表示方法について説明した記事では、SharePoint Server には多くのアイテム表示テンプレートが含まれていることが説明されています。 これらの表示テンプレートは 100% 同じではありませんが、そのすべてに検索結果の表示方法を制御する特定の要素が含まれています。
では理解を深めるために、 Item_Excel などのアイテム表示テンプレートを開いてみます。
注:
ネットワークド ライブをマップしているので、 Notepad++ などの使い慣れた HTML エディターでファイルを開くことができます。
<title> タグについて
表示テンプレートの上部には <title> タグがあります。 このタグ内のテキストが、結果の種類の構成など、SharePoint UI で構成を行うときに表示されます。
次のスクリーン ショットは、アイテム表示テンプレートにある <title> タグのテキストの「 Excel アイテム 」が、 Microsoft Excel の結果の種類の構成にどのように表示されるかを示しています。
ManagedPropertyMapping 要素について
<title> タグの後にある <mso:CustomDocumentProperties> タグには要素のセットが含まれています。その中で最も重要なのは <mso:ManagedPropertyMapping> です。
ManagedPropertyMapping 要素には、検索結果の表示に使用できる管理プロパティが含まれています。 これらのプロパティをアイテム表示テンプレートに保存するには、次の構文を使用します。
'<Display template reference name>':<Managed property name>'
次のスクリーン ショットは、[ Excel アイテム ] 表示テンプレートの既定の ManagedPropertyMapping 要素を示しています。
表示テンプレートの参照名は、管理プロパティ名と同じであることに注意してください (例: 'Title':'Title' or 'FileType':'FileType'
)。 最初はこれが少し複雑に感じることもありますが、名前が同じであればファイルの保守がより簡単になります。
既定では、この要素に含まれる管理プロパティは、項目表示テンプレートによって若干異なります。 ただし、すべての表示テンプレートに含まれる 2 つの管理プロパティがあります。 HitHighlightedProperties と HitHighlightedSummary。 この 2 つのプロパティについては、このトピックの「ヒットの強調表示のしくみ - 魔法です」セクションを参照してください。
<body> タグについて
<body> タグ内には、ID のある <div> タグがあります。 既定では、この <div> タグの ID はファイルの名前と一致します。 この例の場合、それは Item_Excel となります。
検索結果を表示するために表示テンプレートが使用する HTML やコードは、この <div> タグ内に含まれています。
この <div> タグ内には、 <!--#_ で始まり _#--> で終わる 1 つ以上のブロックがあります。 JavaScript コードはこれらのブロックの内側で使用され、HTML は外側で使用されます。 これらのブロックはまた、条件付きステートメントによって HTML を制御するためにも使用できます。 その方法については、後の記事で説明します。
ホバー パネル表示テンプレート変数について
このブロック内で使用される 1 つの変数 var hoverUrl を考慮する必要があります。 「 SharePoint Server での検索結果の表示方法について」では、各項目表示テンプレートにホバー パネル表示テンプレートへの参照が含まれている方法について説明しました。 変数 var hoverUrl には、この参照が含まれています。
次のスクリーン ショットには、 var hoverUrl が Item_Excel_HoverPanel ホバー パネル表示テンプレートをどのように指定しているが示されています。
検索結果に表示されるアイコンについて
また、値 ctx.CurrentItem.csr_Icon にも注目できます。 この値は、Excel アイコンなど、各検索結果の横に表示されるアイコンを指定します。
次のスクリーン ショットは、値 ctx.CurrentItem.csr_Icon がアイコンを指定している方法を示しています。
このシリーズの後の箇所では、この値を変更してカスタム アイコンを指定する方法について説明します。
共通のアイテム表示テンプレートへの参照について
<div> の最後の方に、 #=ctx.RenderBody(ctx)=# という重要なコード行が含まれています。 「 SharePoint Server での検索結果の表示方法について」では、これがすべての結果の種類で使用されるアイテム表示テンプレートへの参照である方法について説明しました。
次のスクリーン ショットは、 #=ctx.RenderBody(ctx)=# が Item_Excel 表示テンプレートで使用される方法を示しています。
検索語句の強調表示について
検索語句の強調表示という言葉を聞くのは初めてでも、その機能が実行されている様子は、あまり注目していなかったにせよ見たことがあるはずです。
検索語句の強調表示の機能は、ユーザーが検索ボックスに入力した語を取得して、検索結果でその語を太字で表示します。 これにより、ユーザーは検索結果をスキャンして、検索語句が見つかったコンテキストを簡単に参照できます。 たとえば、次のスクリーン ショットは、検索ボックスに「result type」と入力された場合を示しています。 検索結果では、「result」と 「type」とが太字で表示されています。
どのようにヒット強調表示のしくみ - それは魔法です!
既定では、検索語句の強調表示は特定の管理プロパティで有効になつています。 これらの管理プロパティを確認するには、検索結果ページで 検索結果 Web パーツ を編集します。 Web パーツのツール ウィンドウで、[ 表示テンプレート ] セクションを展開します。 検索語句の強調表示が有効になっているプロパティが、[ 検索語句の強調表示プロパティ (JSON) ] セクションにリストされます。
さらに詳細に説明することもできますが、今のところは、これらの管理プロパティがリストされている場所を知ることが大切です。
「result type」を検索する例に戻って、最初の検索結果を注意深く調べます。 これは、[ タイトル ] 列と [ プロジェクト/ファイル名 ] 列の値に検索している語が含まれているので、結果として戻されています。
このトピックの「ManagedPropertyMapping 要素について」で既に説明したように、アイテム表示テンプレートの ManagedPropertyMapping 要素には、検索結果の表示に使用できる管理プロパティが含まれています。 このことから、「About configuring result types 」が表示された理由を理解できます。 それは、「About configuring result types」がリスト アイテムの [タイトル] の値であり、[タイトル] は表示テンプレートの ManagedPropertyMapping 要素にある管理プロパティの 1 つであるからです。 [タイトル] は検索結果 Web パーツにリストされた検索語句の強調表示の 1 つなので、「result type」の語は太字で表示されます (検索語句の強調表示)。
しかし、なぜ "CSH_Configure_ result_types... " です。検索結果に表示されますか? リスト アイテムで、これが [プロジェクト/ファイル名] の値であることを確認できますが、そのサイト列の管理プロパティは表示テンプレートの ManagedPropertyMapping 要素にリストされていません。 どちらも検索結果 Web パーツで検索語句の強調表示のプロパティの 1 つとしてリストされていません。 では、この値が表示されたのはどうしてでしょうか。
「魔法の概要」プロパティについて
検索語句の強調表示のことが関係していると推測したのであれば、正解です。 検索結果 Web パーツ の「 検索語句の強調表示プロパティ (JSON) 」セクションに示されている既定のプロパティに加えて、各アイテムのサマリーを含むプロパティがあります。 これは検索インデックス内の各アイテムのサマリーを保管しているため、まるで魔法のプロパティのようです。 このサマリーは SharePoint のフードの下で作成されるので、そのことについて心配する必要はありません。 大事なのは、「result type」を検索すると、タイトルとこの「魔法の概要」プロパティの両方に一致が見つかることです。
ここで少し考えてみましょう。 「タイトル」は 表示テンプレートの ManagedPropertyMapping 要素に含まれる管理プロパティの 1 つなので、「タイトル」の値が表示されている理由は分かります。 しかし「魔法の概要」プロパティは、表示テンプレートの ManagedPropertyMapping 要素に含まれていません。 ではなぜその値が表示されるのでしょうか。
ここで、 HitHighlightedProperties と HitHighlightedSummary の 2 つのプロパティが便利です。 下の図は、SharePoint がこれらのプロパティを実際に扱う方法を示すものではありません。 しかし次のように考えることができます。
検索結果 Web パーツの [検索語句の強調表示プロパティ (JSON)] セクションにリストされた管理プロパティ、および「魔法の要約」プロパティが、HitHighlightedProperties プロパティに渡されます。
HitHighlightedProperties プロパティのすべての値が HitHighlightedSummary プロパティに渡されます。
HitHighlightedSummary に含まれる値の短縮バージョンが検索結果 Web パーツに表示されます。
検索結果をよく見ると、多くの検索結果が末尾の 3 つのドットと共に表示されていることが分かります。
これらのドットは、それらが HitHighlightedSummary プロパティからの値であることを示しています。
各検索結果で最小量の情報を表示する場合には、検索語句の強調表示の魔法を利用して、検索結果が表示される既定の方法で問題ないと思われます。 しかし、各検索結果にカスタム情報を表示する場合には、いくらかのカスタマイズを行う必要があります。
次の記事では、検索結果をカスタマイズするための最初の手順について説明します。それは、新しい結果の種類を作成することです。