従来の検索結果でカスタム管理プロパティの値を表示する方法 - SharePoint Server のオプション 1
適用対象:2016 2019 Subscription Edition SharePoint in Microsoft 365
この記事では、以下について説明します。
カスタム アイコンを表示する方法
「 SharePoint Server での検索結果の表示方法について 」で、従来の検索結果に Word、PDF、Excel のアイコンを表示する方法について説明しました。 この検索センターのシナリオでは、新たに作成された TechNet コンテンツ結果タイプに属するすべての検索結果の横に次のカスタム アイコンを追加する必要がありました。
テネシー
クラシック検索結果のカスタム アイコンを表示するには、次の操作を行う必要があります。
カスタム アイコンを SharePoint Server ライブラリに追加します。
この検索センターのシナリオでは、カスタム アイコンを [イメージ] ライブラリに追加しました。
カスタム アイコンを表示する対象の結果タイプから参照されるアイテム表示テンプレートを開きます。
この検索センターのシナリオでは、次の if ステートメントも削除しました。if (ctx.CurrentItem.IsContainer)
検索ページで、新しい結果タイプをトリガーするクエリを入力します。
検索センターのシナリオでは、"結果の種類" と入力しました。TechNet パブリケーションである検索結果の横にカスタム アイコンが表示されるようになりました。 すごい!
これで検索センターのユーザーは、TechNet 上で公開された文書の検索結果を簡単に区別できるようになりました。 しかし、ユーザーがクリックせずに各検索結果に関する重要な情報を確認できるように、カスタム サイト列の情報も追加したいと思います。
「 SharePoint Server での検索結果の表示方法について 」では、クロール中にサイト列が管理プロパティに "変換" されることを説明しました。 また、アイテム表示テンプレートにリストされる管理プロパティのみを検索結果に表示できることも説明しました。 そのため、検索結果のカスタム情報を表示するには、管理プロパティをアイテム表示テンプレートに追加する必要があります。 したがって、次に実行しなければならないことは、使用するカスタム サイト列に対応する管理プロパティ名を見つけることです。
管理プロパティ名を見つける方法
管理プロパティ名の検索を開始する前に、管理プロパティの名前付け規則について少し理解しておく必要があります。 命名規則の詳細については、「クロールされた管理プロパティの自動作成で使用される命名規則について」を参照してください。
アクセス許可レベルに応じて、3 つの場所から管理プロパティを検索できます。
アクセス許可レベル | 検索できる場所 |
---|---|
Search Service アプリケーションの管理者 |
サーバーの全体管理 --> マネージド サービス アプリケーション --> Search Service アプリケーション --> 検索スキーマ |
サイト コレクション管理者 |
サイト設定 - > 検索スキーマ ([サイト コレクションの管理] セクション) |
サイト コレクションの所有者 |
サイト設定 --> スキーマ ([検索] セクション) |
以下のことを行う必要があります。
[サイトの設定>検索スキーマ] に移動します。
[ 管理プロパティ ] ページの [管理プロパティ] フィールドに、 管理プロパティ 名を検索するサイト列の名前を入力します。 マネージド プロパティ名にはスペースが含まれていないことに注意してください。 そのため、サイト列名にスペースが含まれる場合、そのスペースは省略してください。
この検索センターのシナリオでは、サイト列 [コンテンツの概要] の管理プロパティ名を見つける必要がありました。 [管理プロパティ] フィールドに ContentSummary と入力し、緑色の矢印アイコンを選択しました。
ContentSummaryOWSMTXT という 1 つの検索結果が返されました。
[コンテンツの概要 サイト列は [複数行のテキスト] のタイプであるため、これが使用したい管理プロパティ名であることがわかりました。
この手順のステップを繰り返して、検索結果に表示したいすべての管理プロパティの名前を見つけます。
ここまでで、検索結果に表示したい管理プロパティの名前を見つけました。次のステップでは、アイテム表示テンプレートを変更します。
アイテム表示テンプレートを変更してカスタム管理プロパティの値を表示する方法 - オプション 1
「 SharePoint Server での検索結果の表示方法について」 では、カスタム管理プロパティの値を表示するように項目表示テンプレートを変更する方法がいくつかあることについて説明しました。 このセクションで説明するオプションは非常に簡単です。 このシリーズの次の記事の 2 番目のオプションについて説明します。 if ステートメントは含まれません。ヒット強調表示は適用されません。
以下を実行する必要があります。
検索結果をカスタマイズする結果の種類に属しているアイテム表示テンプレートを開きます。
検索センターのシナリオで、これは「TechNet コンテンツ」でした。
アイテム表示テンプレートの [ManagedPropertyMapping] タグで、次の構文を使用して、表示するカスタム管理プロパティを追加します。
'<Current item property name>':<Managed property name>'
Search Center のシナリオでは、管理プロパティ ContentSummaryOWSMTXT と owstaxIdTechnicalSubject の値を検索結果に表示する必要があります。 ファイルを簡単に保守できるように、現在のアイテム プロパティの名前を管理プロパティと同じにしました。
- <body の 2 番目の <div> タグ内で>次の構文を使用して、カスタム 管理プロパティの値を表示するコードを追加します。
_#= ctx.CurrentItem.<Current item property name> =#
この検索センターのシナリオでは、以下をアイテム表示テンプレートに追加します。
<div>_#= ctx.CurrentItem. ContentSummaryOWSMTXT =#_</div>
<div>_#= ctx.CurrentItem. owstaxIdTechnicalSubject =#></div>
アイテム表示テンプレートを保存します。
注:
Microsoft 365 で SharePoint を使用している場合は、この手順を実行する必要はありません。 Go to Site settings>Search Result Types. プロパティ同期アラートが表示されます。
管理プロパティをアイテム表示テンプレートに追加したため (ステップ 2 で実行)、この通知が表示されます。 新しく追加された管理プロパティで結果の種類を更新するには、[ 更新] を選択します。
重要
この更新を行わない場合、新しく追加された管理プロパティは検索結果に表示されません。
この変更を行った後、ユーザーが検索センターでクエリを入力すると、 ContentSummaryOWSMTXT の値と owstaxIdTechnicalSubject の値の両方が検索結果に表示されます。
検索結果に 2 つのカスタム プロパティが表示されていても、結果が完全には正しくありませんでした。 たとえば、2 つのカスタム プロパティは、現在のようにリンクの下にではなく、タイトルとリンクの間に表示する必要があります。
検索結果が現在のように表示される理由をよりよく理解するため、カスタマイズしたアイテム表示テンプレートを詳しく見てみましょう。
ctx.CurrentItem.csr_Icon
は、カスタム アイコンの場所を指します。 この変数は、Item_CommonItem_Body 表示テンプレートによって使用されます。_#=ctx.RenderBody(ctx)=#_
は、 Item_CommonItem_Body 表示テンプレートを呼び出します。 ( SharePoint Server でのアイテム表示テンプレートとヒット強調表示のしくみを理解してください。 Item_CommonItem_Body 表示テンプレートには、カスタム アイコン、タイトル、アイテムへのリンクが表示されます)。_#= ctx.CurrentItem.ContentSummaryOWSMTXT =#_
と_#= ctx.CurrentItem.owstaxIdTechnicalSubject =#_
ContentSummaryOWSMTXT と owstaxIdTechnicalSubject の 2 つの管理プロパティの値を表示します。
タイトルとリンクの間にカスタム プロパティを表示するには、カスタム表示テンプレートから参照_#=ctx.RenderBody(ctx)=#_
を削除することで、Item_CommonItem_Body表示テンプレートを再生から外します。 その後、次のように、表示する順序でプロパティを追加できます。
検索結果は、以下のようになります。
もう少しスタイルを調整することによって、十分満足できる結果を得ることができます。 ただし、 _#=ctx.RenderBody(ctx)=#_
への参照を削除すると、 Item_CommonItem_Body 表示テンプレートは結果の表示に使用されなくなります。
Item_CommonItem_Body表示テンプレートには、クラシック検索結果の関連性を自動的に向上させるいくつかの機能が含まれています。 そのため、 _#=ctx.RenderBody(ctx)=#_
参照を削除する前に、関連性が自動的に向上することが検索サイトのユーザーのメリットであるかどうかを検討する必要があります。
クリック追跡および自動改善された関連性について
Item_CommonItem_Body 表示テンプレートには、ユーザーのクリック動作を追跡する onlick メソッドが含まれています。 この追跡は、従来の検索結果の関連性に影響します。 たとえば、ユーザーによって頻繁にクリックされる検索結果は、検索結果の上位に自動的に表示されるようになります。
重要
ユーザーのクリック動作に基づいて従来の検索結果に自動的に改善された関連性を受け取る場合は、アイテム表示テンプレートから _#=ctx.RenderBody(ctx)=#_
への参照を削除しないでください。
次の記事では、この参照を保持し、タイトルと従来の検索結果のリンクの間にカスタム プロパティを表示し、カスタム プロパティにヒット強調表示を適用する方法について説明します。