SharePoint 2013 URL パラメーターの値を使用して検索結果を取得する

こんにちは、SharePoint サポートの佐伯です。
今回の投稿では、検索の URL からパラメーター値を取得し、検索クエリで使用する方法についてご紹介します。

検索 Web パーツでは、検索 URL のパラメーター値を取得して、検索クエリに反映させるクエリ変数 {QueryString.<パラメーター名>} が用意されています。
通常、検索センター サイトで検索ボックスにキーワード (例 test) を入力して検索を行うと、検索 URL は下記のようになりますが、

https://sharepoint/sites/search/Pages/results.aspx?k=test

検索 Web パーツでクエリ変数 {QueryString.<パラメーター名>} を使用することで、新たに URL パラメーターを追加した検索 URL からパラメーター値を取得し、これを反映させた検索クエリを実行します。

https://sharepoint/sites/search/Pages/results.aspx?MyParameter1=sample&k=test

該当の検索 Web パーツのクエリ テキストには、下記のように設定します。

補足 : {SearchBoxQuery} は検索ボックスに入力された情報 (つまり、URL パラメーター k の値) がセットされます。
また、 {QueryString.<パラメーター名>} と記述することで、URL パラメーターの値を取得することができます。URL パラメーター名が MyParameter1 の場合は、{QueryString.MyParameter1} を設定します。

上のクエリ テキストの設定により、変換後の検索クエリは下記のようになります。

test sample

このように、検索 URL に新たにパラメーターを追加することで、詳細な条件を設定した検索を実現する方法があります。
なお、プロパティ検索でも詳細な条件を設定した検索が可能ですが、その場合は下記のように検索ボックスに構文をセットする必要があります。

プロパティ検索は便利なものではありますが、操作しているユーザーにこのような構文を入力させることなく、詳細な検索を行いたい時などは、今回の URL パラメーターを追加して検索クエリに反映させる実装が有効となる場合があります。
なお、上記の実現の際は、URL パラメーターを追加した検索 URL を用意する何らかの設定や実装が必要です。

参考例
キーワードと対象の拡張子の選択をして検索が実行できるような検索ページを作成してみましょう。
以下のような入力ボックスとプルダウンにより設定された条件をもとに、検索の URL を生成して検索を行います。

- 実装イメージ
上の例では、検索ボックスと拡張子の選択肢、検索ボタンは HTML および JavaScript で実装しています。
検索ボタンのクリック時に、以下のような検索 URL を生成し、アクセスする処理を実装します。

https://sharepoint/sites/portal/SitePages/search.aspx?fileextension=xlsx&k=test

検索結果は検索結果 Web パーツにより表示しています。
URL パラメーターの情報を使用して検索を実行するため、検索結果 Web パーツのクエリ テキストには下記を入力します。

これにより、変換後の検索クエリは「test FileExtension=xlsx」になり、test というキーワードで xlsx ファイルの検索結果が取得されます。

ご要件に合わせて URL パラメーターを利用して検索の機能をご実装ください。
今回の投稿は以上です。

検索の設定やカスタマイズに関して、下記の投稿もご参考にしていただけますと幸いです。
SharePoint 2013 検索の設定やカスタマイズに関する投稿まとめ