SharePoint Server でクエリの変換と注文の結果を計画する

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

クエリ変換を Web パーツに追加すること、特定の条件が満たされるときにクエリを変換するクエリ ルールを追加すること、および同じ検索先に対するすべてのクエリを変換して特別な検索エクスペリエンスを作成することができます。

SharePoint Server には、"ビデオ"、"ユーザー"、"会話" など、複数の設計済み検索エクスペリエンスつまり検索区分が含まれます。 すべての検索区分には、検索エクスペリエンスを最適化する定義済みのクエリ変換が含まれます。 また、独自のクエリ変換を含む独自の検索エクスペリエンスを設計することもできます ("音楽" や "写真" など)。

クエリ変換とクエリ変数について

クエリ変換を構成して、クエリの特定のプロパティを置き換えることができます。たとえば、クエリが検索結果の取得に使用する検索先や、検索結果の表示順序などを変換できます。

クエリ変換はクエリ変数を含むことができます。 クエリ変数は値のプレースホルダーであり、クエリが実際に実行されるときに、クエリ変数は特定の値に置き換えられます。

次の表ではクエリ変数の例を示します。

クエリ変数: 置き換えられる値:
{User.Name} クエリを入力したユーザーの名前。
{Site.URL} ユーザーがクエリを入力したサイト。
{Today} 当日の日付。
{SearchBoxQuery} ユーザーが入力したクエリ。
{searchTerms} ユーザーが入力したクエリが最新の変換によって変更された結果。

使用できるすべてのクエリ変数の概要については、「SharePoint Server のクエリ変数」を参照してください。

クエリ変換によって受信クエリが置き換えられると、 クエリ テンプレート が使用されます。 A query template is a query that includes query variables, for example "{searchTerms} contenttype:picture".

たとえば、検索結果から画像だけを返す 画像 検索区分を作成する場合は、クエリ テンプレート "{searchTerms} contenttype:picture" を使用してすべてのクエリに "contenttype:picture" を追加するクエリ変換を構成できます。 ユーザーが画像区分にクエリ "moon" を入力すると、変換によってクエリ変数 "{searchTerms}" が "moon" に置き換えられて、クエリは "moon contenttype:picture" に変更されます。

クエリ変換は 3 つの場所で構成できます。

  • Web パーツ

  • クエリ ルール

  • 検索先

ユーザー クエリは、最初に Web パーツによって変換され、次に該当するクエリ ルールによって変換され、最後に検索先によって変換されます。 検索先での変換を構成するときは、クエリに対する最後の変換なので、変換による変更が破棄されたり上書きされたりしないことがわかっています。

クエリ ビルダーを使用したクエリ変換の作成とテスト

クエリ変換の作成とテストには、クエリ ビルダーを使用できます。 クエリを作成するにはキーワード クエリ言語 (KQL) を使用し、クエリ変数も追加できます。 クエリ変数に一時的なテスト値を設定することによってクエリ ビルダー内からクエリをテストでき、クエリを実行して検索結果をプレビューできます。

検索クエリの作成および KQL の構文例の詳細については、「SharePoint 2013 で検索クエリを作成する」(MSDN) を参照してください。 使用できるすべてのクエリ変数の概要については、「Query variables in SharePoint Server」を参照してください。

Web パーツに対してクエリを変換する

コンテンツ検索 Web パーツや検索結果 Web パーツなどの検索 Web パーツで、クエリを変換できます。 Web パーツでのクエリ変換は、クエリ ルールまたは検索先のクエリ変換によって上書きされる場合があります。

Web パーツでのクエリ変換が最もよく使用されるのは、クエリの送信先である検索先を指定する場合です。 たとえば、画像検索専用にカスタマイズされた検索エクスペリエンスを作成する場合は、最初に、画像だけを返すクエリ変換を含む検索先を作成します。 次に、その Web パーツで実行されるクエリを、既定の検索先ではなく新しい 画像 検索先を使用するように変更するクエリ変換を含む Web パーツを作成します。

Web パーツでのクエリ変換のもう 1 つの一般的な用途は、特定の Web パーツに固有の変更を行う場合です。 たとえば、画像検索先を作成した後、画像検索先を使用し、さらに検索結果を最近変更された画像だけに制限するクエリ変換を含む Web パーツを追加できます。

クエリ ルールを使用してクエリを変換する

ユーザー クエリーの背後にある真の意図を捕捉し、その意図にいっそう一致した結果を返すには、クエリ ルールを使用します。 クエリ ルールごとに、ルールを適用する条件を指定し、ルールが適用されたときにトリガーするアクションを指定できます。 通常は 1 つのサイトに適用されるクエリ ルールを作成しますが、特定のサイト コレクションまたは Search Service アプリケーション内のすべてのサイト コレクションに適用されるクエリ ルールを作成することもできます。

クエリ ルール作成手順で最初に行うことは、ルールの コンテキスト の指定です。 少なくとも、クエリ ルールを適用する対象の検索先を指定する必要があります。 たとえば、ユーザー検索のみに適用されるルールを作成するには、コンテキストとして検索先 " ローカルのひとの結果 " を指定します。 必要に応じて、ユーザー セグメントやトピック カテゴリをクエリ ルールのコンテキストに含めることができます。

次に、ルールが適用される 条件 を指定します。 すべてのクエリにクエリ ルールを適用する場合は、すべての条件を削除できます。

次の表は使用できるクエリ ルール条件です。

クエリ ルール条件 説明
クエリがキーワードに正確に一致する 指定した語句にクエリが正確に一致したら、クエリ ルールを適用します。 キーワードとして "picture; pic" を指定します。 ユーザーが検索ボックスにクエリ "picture" または "pic" を入力すると、クエリ ルールが適用されます。 ユーザーが "pictures" や "sunny picture" などと入力した場合は、ルールは適用されません。
クエリにアクション用語が含まれている ユーザーが何かを実行しようとしていることを示す 1 つの単語または語句の形で用語がクエリに含まれている場合に、クエリ ルールを適用します。 用語は、クエリの先頭または末尾に存在する必要があり、動詞、コマンド、フィルターなどの場合があります。 クエリに "ダウンロード" という語句が含まれる場合、ユーザーはおそらく "ダウンロード" という単語が含まれるアイテムを探しているのではなく、何かをダウンロードしようとしています。
クエリが辞書に正確に一致する クエリが辞書エントリに正確に一致する場合に、クエリ ルールを適用します。 このエントリは、用語ストアの用語、または人名辞典のエントリである可能性があります。
ソースでよく使用されるクエリ ユーザーのクエリが現在の検索先とは別の検索先に対してより頻繁に実行されている場合、このクエリ ルールを適用します。 この条件では、さまざまな検索先にユーザーが入力したクエリの分析が使用されます。 ビデオ 区分での方がクエリがいっそうよく実行されるかどうかを調べるクエリ ルールを作成できます。 そうであれば、ビデオの結果が目立つように表示されます。
よくクリックされる検索結果の種類 特定の種類の結果をユーザーがクリックすることによって終了することが多いクエリの場合、クエリ ルールが適用されます。 新しい結果の種類を作成する場合、それらのクリックをクエリ ルールで使用するために記録する必要があることを示すことができます。 結果の種類 "画像" をユーザーがクリックすることの多いクエリの場合、画像関連の結果を結果ブロックで提供するのが適している可能性があります。
詳細なクエリ テキスト照合 クエリが正規表現と一致する場合、クエリ ルールを適用します。 また、前述のように、キーワード、辞書、および操作用語の条件のバリエーションを使用することもできますが、より高度な制御が必要です。 nnn-nnn-nnnn 形式のすべての電話番号と一致するには、正規表現 "(?(\d{3}))?-?(\d{3})-(\d{4})"

最後に、クエリ ルールが適用されるときにトリガーする必要のある アクション を指定します。 必要に応じて、クエリ ルールをアクティブにする開始日と終了日を指定できます。

次の表では使用できる クエリ ルール アクションを示します。

クエリ ルール アクション 説明
提示された結果を追加する 提示された結果 (以前のバージョンの SharePoint Server では、おすすめコンテンツと呼ばれる) をランク付けされた結果の上に表示します。 提示された結果は、アイテムにインデックスが作成されていない場合、またはドキュメント概要が不十分である場合に使用するのが最善です。 それ以外の場合には、結果のランク付けを変更することを検討します。 クエリ "病気休暇" の場合、たとえば人事部門のサイトへのリンクをすべてのランク付けされた結果の上に追加できます。
結果ブロックを追加する 特定の方法でクエリに関連付けられている結果の小さいサブセットを含む結果のブロックを追加します。 結果ブロックは、提示することも、他の検索結果と共にランク付けすることもできます。

結果ブロックに対して指定されているクエリ変換は、元のクエリのコピーを変換します。

また、結果ブロックの表示に使用する表示テンプレートを指定することもできます。
"Contoso 営業レポート" を含むクエリでは、クエリ ルールで分類辞書を使用して "Contoso" を顧客として認識し、顧客関係管理 (CRM) システムから "Contoso" に関する結果の結果ブロックを表示できます。
クエリを変更して、ランク付けされた結果を変更する 元のクエリを変更するクエリ変換を追加します。 たとえば、変換では特定の結果を提示または降格できます。

検索結果のランク付けの変更 (サイトまたは URL による適切な結果の昇格など) は、提示された結果の追加の代わりによく使用される方法です。 クエリを変更することによってランク付けされた結果を変更すると、結果がセキュリティによってトリミングされ絞り込み可能であるという利点があります。 また、ドキュメントが使用できなくなると、検索結果は表示されなくなります。 ファイルの拡張子や特定のキーワードなどの複数の変数に基づいて、検索結果の並べ替え順序を動的に変更できます。 結果を提示または降格でき、結果を提示または降格する大きさを指定できます。

詳細については、「SharePoint Server での検索結果の概要」の「クエリ ルールを使用した検索結果のランキングの調整」を参照してください。

"ダウンロード ツールボックス" を含むクエリの場合は、クエリ ルールで "ダウンロード" をアクション用語として認識し、イントラネットの特定のダウンロード サイトを参照する検索結果を昇格できます。

検索先内でクエリを変換する

検索先ごとに、その検索先からのすべての検索結果を特定の方法で変換するように指定できます。 たとえば、あらかじめ構成された "ローカルのビデオ結果" という検索先では、ローカルの SharePoint インデックスからビデオの結果のみを返すクエリ変換が使用されます。

SharePoint Server では、複数の定義済み検索先と定義済みクエリ変換がすぐ使用できるように用意されています。 また、新しい検索先を作成して、異なるクエリ変換を適用することもできます。 1 つの検索プロバイダーに対して複数の検索先を作成でき、各検索先に異なるクエリ変換を設定できます。

ユーザー クエリは、最初に Web パーツによって変換され、次に該当するクエリ ルールによって変換され、最後に検索先によって変換されます。 検索先での変換を構成するときは、クエリに対する最後の変換なので、変換による変更が破棄されたり上書きされたりしないことがわかっています。 検索先のクエリ変換は Web パーツや結果ブロックで再利用でき、特定の検索先からの結果に対してのみ適用されるクエリ ルールまたは結果の種類を作成できます。

結果の種類を使用して、結果の表示方法を変更する

結果の種類を使用すると、検索結果の表示方法を条件付きで変更できます。 関連する結果のグループの外観をカスタマイズするには、HTML で表示テンプレートを作成し、表示テンプレートを結果の種類に関連付けます。 表示テンプレートを表示するタイミングを指定するルールを作成し、これらのルールに優先順位を付けることができます。

検索システムによるクエリの処理方法

クエリが入力されるか、クエリを起動する要素がクリックされた後、検索システムはクエリをクエリ処理コンポーネントに送信します。 このコンポーネントは、クエリを処理し、適切な検索プロバイダーにクエリを送信して結果を取得します。 検索プロバイダーには、ローカルの検索インデックスやリモート ソースを使用できます。 検索プロバイダーから結果が収集されると、クエリ処理コンポーネントは追加の処理を実行し、結果を表示できるように結果を返します。

検索システムは以下のようにクエリを処理します。

  1. Web パーツ変換を適用します。

  2. クエリ ルールを適用します。 クエリ ルールのアクションでは、元のクエリを変換するか、結果ブロック用に変換された並行クエリをトリガーすることができます。

  3. クエリ変換を検索先に適用します。

  4. クエリを解析し、クエリ構文ツリーを作成して内部で使用します。

  5. 改行、ステミング、スペル修正、および類義語の展開を実行して、クエリを言語的に処理します。

  6. ユーザー アクセス情報をクエリに付加します。 これによって、クエリを実行しているユーザーと、そのユーザーが持つアクセス許可が指定されます。

  7. クエリを検索インデックスまたは別の検索プロバイダーに送信します。

  8. すべての検索プロバイダーからの検索結果を収集して結合し、クエリ処理コンポーネントに送り返します。

  9. 検索結果を結果の種類に基づいて評価します。 結果が、特定の結果の種類に一致する場合、その結果の種類に対して管理者が指定した表示テンプレートによって、結果が表示されます。

  10. 追加のセキュリティによるトリミングを適用します (該当する場合)。

関連項目

SharePoint Server でクエリ ルールを管理する

SharePoint Server の検索に関する結果ソースを構成する

SharePoint Server で検索センターを管理する