検索画面、検索結果カスタマイズ

まず、設定した範囲を検索ボックスや高度な検索に表示させる。
検索ページ、検索結果ページ、コードの検索ページで、SiteActionsからEdit this pageを選択。
Searchbox WebpartのEditからModify Shared Webpartを選択。
右側にプロパティエディタが表示されるので、Scopes Drop DownのDropDownモードでShowを選択。
Exit Edit Modeで検索画面にもどるとScopeのドロップダウンが表示される。


Office系のドキュメントのタイトル表示を変更する。
Office系のドキュメントの検索結果には、ドキュメントのプロパティに設定されたタイトルが表示される。
しかし、ファイルをコピー&ペーストすることが多いとプロパティを修正し忘れることも多く、検索結果の
タイトルと実際のタイトルが異なってしまうことが多いので、プロパティのタイトルではなく、ファイル名を表示させたい。


ためしに、Search Administrationのページで、Queries and ResultsのMetadata propertiesからTitleを選択。
Mappings to crawled propertiesのows_Title(Text)を削除し、再度Full crwalをしてみる。
しかし、だめだった、やっぱりxsltを修正するしかないか?


Search Core Result WebpartのEditからModify Shared Webpartを選択。
DataView Propertiesの「XSL Editor」ボタンをクリックすると、XSLが表示されるのでこれを編集する。

urlからファイル名のみを取得するXSLTをどう記述するか思案した結果、再帰をつかって対応することにした。














































XSLTではループが使えないのでどうしようかと迷っていたが、ループの変わりに再帰を使うのは常識だったらしい。
http://www.ibm.com/developerworks/jp/xml/library/x-tiploop/


XSLTHaskellSchemeに似た関数型プログラミング言語であり、CやFortranには似ていません。したがって、ループもなければ、mutable変数もありません。代わりに、これらの構成体を再帰とパラメーターに置き換える必要があります。このTipでは、名前付きテンプレートとxsl:call-template、xsl:with-param、およびxsl:param要素を使用してこの機能を備える方法を説明します。


XSLTチューリング完備です。つまり、十分なメモリーさえあれば、XSLTは他のチューリング完備言語(C++など)で計算できるものなら何でも計算できます。これは、より伝統的な言語に慣れているプログラマーにとって、ちょっとした驚きです。結局、XSLTには、ループやmutable変数も含めて、多くのアルゴリズムにとって重要ないくつかの機能が欠けています。

ちなみに、XSLT関数型言語であるということを始めて知った。