SharePoint 検索の開発者向けの新機能

SharePointの検索で開発者が使用できる新しい機能について説明します。

オンライン、社内設置型、モバイル開発向けクエリ オブジェクト モデル機能にアクセスするためのクライアント オブジェクト モデルの検索

SharePoint検索には、ほとんどのオンライン、社内設置型、モバイル開発向けクエリ オブジェクト モデル機能にアクセスできるようにするクライアント側オブジェクト モデル (CSOM) が含まれています。 CSOM の検索を使用して、SharePointの検索結果を返すためにインストールされた SharePointのないマシンで実行するクライアント アプリケーションを作成できます。

CSOM の検索には、Microsoft .NET Framework マネージ クライアント オブジェクト モデル、JavaScript オブジェクト モデルが含まれており、SharePointに基づいて構築されています。 まず、クライアント コードが SharePoint CSOM にアクセスします。 次に、クライアント コードが CSOM の検索にアクセスします。

Search .NET Frameworkマネージド CSOM を使用するには、ClientContext インスタンスを取得する必要があります (Microsoft.SharePoint.Client.dllの Microsoft.SharePoint.Client 名前空間にあります)。 次に、Microsoft.Office.Server.Search.Client.dllの Microsoft.SharePoint.Client.Search.Query 名前空間でオブジェクト モデルを使用します。 SharePoint CSOM についての詳細は、SharePoint 2010 クライアント オブジェクト モデルを参照してください。 CSOM へのエントリ ポイントである ClientContext オブジェクトについての詳細は、 中心的オブジェクトであるクライアント コンテキストを参照してください。

CSOM の検索は、JavaScript Object Notation (JSON) 内のサーバーから検索結果のデータを返します。 検索結果データの JSON には、さまざまな結果セットを表す ResultTable オブジェクトで構成される ResultTableCollection コレクションが含まれています。

削除される SQL 構文のサポート

SharePoint のカスタム検索ソリューションでは 、SQL 構文はサポートされていません。 SharePoint の検索では、カスタム検索ソリューション用に FQL 構文と KQL 構文をサポートしています。 クエリ サーバー オブジェクト モデル、クライアントオブジェクトモデル、検索 REST サービスなどのテクノロジを使用して、カスタム検索で SQL 構文を使用することはできません。 クエリ サーバー オブジェクト モデルと以前のバージョンの SharePoint サーバーで作成されたクエリ Web サービスで SQL 構文を使用するカスタム検索ソリューションは、SharePoint にアップグレードすると、機能しなくなります。 これらのアプリケーションから送信されるクエリはエラーを返します。 FQL 構文と KQL 構文の使用方法の詳細については、「 キーワード クエリ言語 (KQL) 構文リファレンス」 および「 FAST クエリ言語 (FQL.md) 構文リファレンス」を参照してください

クライアント アプリケーションからのクエリをリモートで実行するのための検索 REST サービス

SharePoint には REST (Representational State Transfer) サービスが含まれています。これにより、REST 要求をサポートする任意のテクノロジを使用して、クライアント アプリケーションからリモートで SharePoint 検索サービスに対してクエリを実行できます。 Search REST サービスには querysuggest の 2 つのエンドポイントがあり、GETPOST の両方の動作に対応しています。 結果は XML または JSON のいずれかの形式で返されます。

サービスのアクセス ポイントを次に示します。 http://server/_api/search/ URL には、次 http://server/site/_api/search/のようにサイトを指定することもできます。 検索サービスはサイト コレクション全体から結果を返すので、同じ結果がサービスにアクセスする両方の方法のために返されます。

次のように http://server/_vti_bin/client.svc/search/、client.svc を参照する URL を使用してサービスにアクセスすることもできます。 ただし、_api を使用することをお勧めします。

次のアクセス ポイントを使用して、サービス メタデータにアクセスします:

http://server/_api/$metadata

SharePoint の REST サービスの一般的な情報については、「SharePoint REST 要求で OData クエリ操作を使用する」を参照してください。

SharePoint 検索クエリ Web サービスの廃止

(パス http://server/site/_vti_bin/search.asmxにある) クエリ Web サービスは、SharePoint では非推奨です。 新しいアプリケーションを作成する場合は、この非推奨の機能を使用しないようにし、代わりに新しいクエリ CSOM またはクエリ REST サービスを使用します。 既存のアプリケーションを変更する場合は、この機能への依存関係を削除することを強くお勧めします。

SharePoint 検索クエリオブジェクト モデルの機能強化

クエリ プロパティは検索クエリについての情報を提供します。 SharePoint検索では、プロパティ バッグがクエリおよび結果クラスに追加され、ユーザー定義のクエリ プロパティが有効になりました。 次のように、1 つのクエリ クラスのプロパティを経由して既存のクエリ プロパティにアクセスできます。

KeywordQuery.EnableStemming

または、次のようにプロパティ バッグを使用できます。

KeywordQuery.Properties["EnableStemming"]

次のように、プロパティ バッグを使用してのみユーザー定義プロパティにアクセスできます:

KeywordQuery.Properties["UserDefinedProperty"]

SharePoint検索には、以下のような新しいクエリ プロパティを含め、プロパティ バッグのクエリ プロパティが含まれます。

  • BypassResultTypes クエリ結果の検索結果項目の種類を返すかどうかを指定します。 結果の型を返さない場合は true を 指定します。それ以外の場合は false

  • EnableInterleaving クエリ ルール アクションを実行して結果ブロックを追加することによって生成された結果セットを、元のクエリの結果セットと混在させるかどうかを指定します。 生成された結果セットを元の結果セットと混在させる場合は 、true を 指定します。それ以外の場合は false

  • EnableQueryRules このクエリに対してクエリ ルールを有効にするかどうかを指定します。 クエリのクエリ ルールを有効にするには 、true を指定します。それ以外の場合は false

クエリ ルールの条件として、ユーザー定義プロパティを含め、プロパティ バッグで任意のプロパティを指定できます。 クエリ ルールを使用して、ユーザーにとって重要な種類のクエリの検索の操作性をカスタマイズします。 クエリがクエリ ルールで指定されている条件を満たしているとき、ルールがアクションを指定して、関連付けられた検索結果の関連性を向上させます。

キーワード クエリ言語の機能拡張

SharePointにはキーワード クエリ言語の改良が含まれており、それらはこのセクションで説明します。

NEAR 演算子の向上

SharePoint Server 2010 では、 NEAR 演算子が最大トークン距離である 8 を暗黙に定義し、入力トークンの順序を保持しました。 SharePointでは、 NEAR 演算子はトークンの順序を保持しなくなりました。 また、 NEAR 演算子は最大トークン距離を示すオプション パラメーターを受け取ります。 ただし、既定値は依然として 8 です。 以前の動作を使用する必要がある場合は、代わりに ONEAR を使用します。

以下の例に示すように、 NEAR 演算子をプロパティ制限の式で使用できます。

"acquisition" NEAR "debt"

トークンの最大距離が 8 の場合、このトークンは、トークン "acquisition" および "debt" が同じドキュメント内に表示されるアイテムと一致します (値が提供されていない場合は、既定値の n)。 トークンの順序は一致には重要ではありません。

より短いトークン距離を必要とする場合、次のように指定できます。

"acquisition" NEAR(n=3) "debt"

最大トークン距離が 3 の場合、このクエリは 2 つのトークン "acquisition" と "debt" が同じドキュメント内に表示されるアイテムと一致します。 トークンの順序は一致には重要ではありません。

新しい ONEAR 演算子

ONEAR 演算子は、近い順序付けされた機能を提供します。 これは、最大トークン距離を示す省略可能なパラメーターを受け取ります。既定値は 8 です

ONEAR 演算子は入力表現の順序を保持します。 順序なしの近接については、 NEAR を使用してください。

以下の例に示すように、プロパティ制限の式で ONEAR 演算子を使用できます。

"acquisition" ONEAR "debt"

このクエリは、2 つのトークン "取得" と "debt" が同じドキュメント内に表示され、最大トークン距離が 8 (値が指定されていない場合は既定値は n ) の項目と一致します。 トークンの順序が返されるアイテムに対して一致する必要があります。

より短いトークン距離を必要とする場合、次のように指定できます。

"acquisition" ONEAR(n=3) "debt"

最大トークン距離が 3 の場合、このクエリは 2 つのトークン "acquisition" と "debt" が同じドキュメント内に表示されるアイテムと一致します。 トークンの順序が返されるアイテムに対して一致する必要があります。

新しい XRANK 演算子

SharePoint Server 2010 では、 XRANK 演算子は FAST クエリ言語 (FQL) でのみ使用できました。 SharePointでは、新しく強力な XRANK 演算子が導入されています。

The XRANK 演算子は動的ランク制御を提供します。 この演算子は、クエリに一致するアイテムを変更せずに、特定の用語出現回数に基づいてアイテムの動的ランクをアップします。

検索結果 UI カスタマイズ用の豊富な結果フレームワーク

SharePoint検索には、検索結果のユーザー インターフェイス (UI) の表示形式 (外観) のカスタマイズを容易にする新しい結果フレームワークが含まれています。 検索結果の表示方法を変更するためにカスタム XSLT を書き込む代わりに、ディスプレイ テンプレートおよび結果の種類を使用して、結果の重要な種類の表示形式をカスタマイズできます。

表示テンプレート

表示テンプレートは、HTML、CSS、および JavaScript を使用して、表示レイアウトと結果の種類の動作を定義します。 HTML エディターを使用して、既存のディスプレイ テンプレートをカスタマイズ、またはディスプレイ テンプレートを作成し、それらをディスプレイ テンプレート ギャラリーにアップロードできます。

結果の種類

結果の種類は以下のコレクションに基づく検索結果の設定表示方法を定義します。

  • ルール 指定された条件に基づいて、結果の種類をいつ適用するかを判断します。 等号、比較、論理演算子を使用してルール条件を結合できます。

  • プロパティ 結果用管理プロパティのリストを判断します。 管理プロパティをディスプレイ テンプレートにマップする前に、管理プロパティをリストに追加する必要があります。

  • 表示テンプレート 結果の種類の表示レイアウトを判断します。

管理者は、サイト レベルまたはサービス アプリケーション レベルで結果の種類を作成し、管理できます。カスタムのコーディングは必要ありません。

コネクタ フレームワークの機能拡張

SharePoint検索により、コネクタ フレームワークを使用してクロールされるカスタム外部データ ソースに保存されているコンテンツ用クレーム情報を取得できます。

コネクタ フレームワークは向上した例外キャプチャとログも提供し、コネクタ フレームワークの上部に構築されているカスタム コネクタを使用しているコンテンツ ソースをクロールする際に発生するエラーのトラブルシューティングをサポートします。 コネクタ フレームワークの詳細については、「 SharePoint でのコネクタ フレームワークの検索」を参照してください。

関連項目