主要な検索結果で返されるプロパティを変更する
最終更新日: 2010年6月29日
適用対象: SharePoint Server 2010
SharePoint エンタープライズ検索結果 Web パーツでカスタム プロパティの値を表示するには、Web パーツのプロパティを次のように変更する必要があります。
検索クエリにカスタム プロパティを追加する。
カスタム プロパティを表示するように XSLT 変換 (XSLT) を変更する。
注意
検索クエリには管理プロパティのみを使用できます。カスタム プロパティがクロールされたプロパティの場合は、これらの手順が有効になるように、そのプロパティを管理プロパティにマップする必要があります。詳細については、「メタデータを管理する」を参照してください。
検索クエリにプロパティを追加するには
検索結果ページをブラウザで開き、[サイトの操作] メニューの [ページ コンテンツの編集] をクリックします。
ページが [編集] モードで開いた後に、Web パーツのドロップダウンの矢印をクリックして、[Web パーツ] メニューを開き、[Web パーツの編集] をクリックします。これにより、ツール ウィンドウが開き、Web パーツのプロパティを変更できます。
[プロパティの表示] ノードを展開し、[場所の表示形式を使用] チェック ボックスをオフにします。
[取得されたプロパティ] テキスト ボックスをダブルクリックし、返すプロパティを指定する XML を含むテキストを選択して、そのテキストをクリップボードにコピーし、メモ帳や Microsoft Visual Studio などのエディターに貼り付けます。
次の構文を使用して、<SelectedColumns> セクション内に管理プロパティ名を含むタグを追加します。
<Column Name="CustomProperty"/>
更新した XML を [取得されたプロパティ] テキスト ボックスにコピーし、[OK] をクリックして、変更を Web パーツに保存します。
これで、返される検索結果にプロパティ値が含まれます。「[方法] 検索結果 XML データを表示する」に記載されている手順を使用して、これを確認できます。
注意
プロパティを検索結果の一部として表示するには、Web パーツの [XSL] プロパティを変更する必要があります。
新しいプロパティを含めるように Web パーツの XSLT を変更するには
前述の手順の手順 1. および 2. を繰り返します。
[プロパティの表示] ノードを展開し、[XSL エディター] ボタンをクリックして、[XSL] プロパティの [テキストの入力] ウィンドウを開きます。
ウィンドウの内容を XML エディタにコピーします。このエディタで、カスタム プロパティを表示するように XSLT コードを変更します。
プロパティの表示方法によって、加える変更が異なります。たとえば、以下のコードのように、DisplayString テンプレートを使用できます。
<xsl:template name="DisplayString"> <xsl:param name="str" /> <xsl:if test='string-length($str) > 0'> - <xsl:value-of select="$str" /> </xsl:if> </xsl:template>
または、カスタム プロパティ用のテンプレートを作成し、<xsl:call-template> 要素を使用してこのテンプレートを指定することもできます。この処理の詳細については、「<xsl:call-template> 要素」のリファレンスを参照してください。
DisplayString テンプレートを呼び出してカスタム プロパティを表示するコードを追加する必要があります。Author プロパティなど、他のメタデータを含むカスタム プロパティを表示するには、次の文字列を検索して、DisplayAuthors テンプレートの call-template コードを探します。
<xsl:call-template name="DisplayAuthors">
DisplayAuthors テンプレートの </xsl:call-template> 要素を閉じた後に、次の構文を使用して、新しいプロパティの <xsl:call-template> 要素を追加します。
<xsl:call-template name="DisplayString"> <xsl:with-param name="str" select="customproperty" /> </xsl:call-template>
重要 カスタム プロパティ名には、すべて小文字を使用する必要があります。