検索結果のXML構造

SharePointの、検索結果表示のカスタマイズに挑戦しています。SharePointは、検索クエリに対する結果を、XML形式で返しています。それを、検索結果Webパーツが、XSLTでHTMLに変換して表示する仕組みです。

検索結果表示をカスタマイズするには、Webパーツのプロパティから、XSLエディタで編集します。ただ、編集画面が小さいため、テキストエディタに一旦貼りつけてから編集した方が便利でしょう。

しかし、ここでひとつ問題があります。
XSLをカスタマイズするには、前提として、もとになるXMLがどのような構造で返されているのかを、正確に把握している必要があります。しかし、通常、私たちは変換された結果しか見ることが無いため、XML構文を知ることが出来ません。

そこで、検索結果WebパーツのXSLを編集して、XML構造をそのまま表示するように設定します。
エディタを起動し、XSLを以下に変更してください。
[code]
<?xml version="1.0" encoding="UTF&#45;8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF&#45;8" indent="yes"/>
<xsl:template match="/">
<xsl:copy&#45;of select="*"/>
</xsl:template>
</xsl:stylesheet>[/code]

およそ、意味不明な結果ですが、ソースを見ると、きちんとXML構造になっています。

サンプル:
[code]<?xml version="1.0" encoding="utf&#45;8"?>
<All_Results>
<Result>
<id>1</id>
<workid>33</workid>
<rank>842</rank>
<title>ドキュメント センター</title>
<author>SHAREPOINT\Administrator</author>
<size>0</size>
<url>http://winserver2003r2/Docs</url>
<urlEncoded>http%3A%2F%2Fwinserver2003r2%2FDocs</urlEncoded>
<description>ドキュメント センター サイト</description>
<write>2009/12/04</write>
<sitename>http://winserver2003r2/Docs</sitename>
<collapsingstatus>0</collapsingstatus>
<hithighlightedsummary>このビューに表示する<c0>アイテム</c0>はありません。 <ddd /> ごみ箱には、削除した<c0>アイテム</c0>が格納されています。 <ddd /> <c0>アイテム</c0> </hithighlightedsummary>
<hithighlightedproperties>
<HHTitle>ドキュメント センター</HHTitle>
<HHUrl>http://winserver2003r2/Docs</HHUrl>
</hithighlightedproperties>
<contentclass>STS_Web</contentclass>
<isdocument>0</isdocument>
<picturethumbnailurl></picturethumbnailurl>
<imageurl imageurldescription="次の種類の結果: サイト">/_layouts/images/STS_Web16.gif</imageurl>
</Result>
</All_Results></blockquote>このXML構造に含まれるノードは、Webパーツ側の指定によります。
[検索結果のオプション/選択した列]です。デフォルト値は以下の通りです。<blockquote><root xmlns:xsi="http://www.w3.org/2001/XMLSchema&#45;instance">
<Columns>
<Column Name="WorkId"/>
<Column Name="Rank"/>
<Column Name="Title"/>
<Column Name="Author"/>
<Column Name="Size"/>
<Column Name="Path"/>
<Column Name="Description"/>
<Column Name="Write"/>
<Column Name="SiteName"/>
<Column Name="CollapsingStatus"/>
<Column Name="HitHighlightedSummary"/>
<Column Name="HitHighlightedProperties"/>
<Column Name="ContentClass"/>
<Column Name="IsDocument"/>
<Column Name="PictureThumbnailURL"/>
</Columns>
</root>[/code]

この設定を必要に応じて追加、あるいは削除します。
なお、ここで指定出来る列は、サーバーの全体管理→共有サービス管理:SharedServices1→検索/検索管理→クエリと結果/メタデータのプロパティ、に登録された「管理プロパティ」に限られる点に注意が必要です。


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9