Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
こんにちは、SharePoint サポートの佐伯です。
今回の投稿は、検索のトラブルシュートについてです。コンテンツ検索 Web パーツや検索結果 Web パーツの検索結果で、カスタムの管理プロパティが表示されないとのお問い合わせをいただくことがあります。
これには大きく三つの要因が考えられます。一つ目は、検索インデックスの目的の管理プロパティに正常に値が格納されていないこと、二つ目は、検索結果の取得時に管理プロパティが正常に返されないこと、三つ目は、検索結果で返された管理プロパティが正常に表示されないことです。
それぞれの要因につながる理由として、一つ目の場合は、アイテムが正常にクロールされていないことや、管理プロパティにマップされたクロールされたプロパティが正しくないことが考えられます。二つ目の場合は、管理プロパティが取得可能な設定になっていないことや、Web パーツの管理プロパティのマッピングが正しく行われていないことが考えられます。三つ目の場合は、検索結果を描画する表示テンプレートの内容が関係して想定した表示が行われないことが考えられます。(これらはあくまで一例となります。)
どれに該当するかによって、確認する情報 (検索データや各種設定、ファイル等) が異なりますので、問題の切り分けを行うことが重要です。
その方法の一つとして、検索の REST API を使用して単純に検索結果を取得し、管理プロパティの値を確認する方法をご紹介します。こうすることで、Web パーツの設定や表示テンプレートの内容とは切り離して動作を確認することができます。
検索の REST API を使用して管理プロパティを取得する
検索の REST API を使用して検索結果を取得し、カスタムの管理プロパティの値を確認します。
ブラウザーのアドレス バーに下記の URL を入力して実行し、検索結果を取得します。
<サイトの URL>/_api/search/query?querytext='<キーワード>'&selectproperties='<取得する管理プロパティ>' |
キーワードには、目的の検索結果を取得するための条件を入力します。(日本語を指定する場合は URL エンコードを行います。)
例) あるアイテムの管理プロパティ TestProperty の値を確認します。
<サイトの URL>/_api/search/query?querytext='item1'&selectproperties='Title,Path,TestProperty'
検索結果を取得した後は、Title や Path 等から該当のアイテムであるかを確認し、目的の管理プロパティの値を確認します。上の画像では、アイテムitem1 の TestProperty の値は property1 になります。
参考) 検索 REST API の詳細については下記の MSDN の記事をご参照ください。
SharePoint 検索 REST API の概要
今回の投稿は以上です。