Dataverse 検索の提案
この API を使用して、より豊かな検索ボックスのエクスペリエンスをサポートできます。 たとえば、ユーザーが検索語句の各文字を入力すると、この API が呼び出され、検索フィールドのドロップダウン リストに提案されたクエリ結果が入力されます。
検索語句に加えて、返される結果は、次のパラメーターに渡される値によって影響を受ける可能性があります。
件名 | タイプ | Description | 詳細情報 |
---|---|---|---|
search |
string | 必須。 検索するための語句。 | 検索パラメーター |
entities |
string | 既定では、検索の構成済みエンティティ全体を検索します。 | entities パラメーター |
filter |
string | 返される結果を減らすためのフィルター条件。 | filter パラメーター |
fuzzy |
ブール値 | あいまい検索を使用して、スペルミスを防ぎます。 既定値は false です。 | fuzzy パラメーター |
options |
string | オプションは、検索語句 を検索するように構成された設定です。 たとえば、"{ 'advancedsuggestenabled': 'true' }" 。 |
options パラメーター |
orderby |
string | 各句が属性名とそれに続く asc または desc で構成されるカンマ区切りの句のリスト。 |
orderby パラメーター |
top |
int | 取得する提案の数。 既定値は 5 です。 | top パラメーター |
Parameters
このセクションには、上の表によって導入されたパラメーターに関する詳細が含まれています。
search
パラメーター
種類: 文字列
オプション: 無効
検索するための語句。 検索語句は、少なくとも 3 文字の長さがある必要があり、100 文字の制限があります。
entities
パラメーター
種類: 文字列
オプション: 有効
既定では、検索の構成済みエンティティ全体を検索します。 このプロパティを使用して結果を絞り込みます。
filter
パラメーター
種類: 文字列
オプション: 有効
フィルター条件に一致するレコードに基づいて返される結果を減らすためのフィルター条件。
fuzzy
パラメーター
種類: ブール値
オプション: 有効
あいまい検索を使用して、スペルミスを防ぎます。 既定値は false です。
options
パラメーター
種類: 文字列
オプション: 有効
オプションは、検索語句 を検索するように構成された設定です。 提案クエリの有効なオプションは次のとおりです。
"{ 'advancedsuggestenabled': 'true' }"
。
orderby
パラメーター
種類: 文字列
オプション: 有効
各句が属性名とそれに続く asc
または desc
で構成されるカンマ区切りの句のリスト。
top
パラメーター
タイプ: 整数
オプション: 有効
取得する提案の数。 既定値は 5 です。
回答
提案操作からの応答は、JSON データを含むエスケープ文字列です。
エスケープされていない応答には、次のプロパティを使用する JSON が含まれています。
件名 | タイプ | Description |
---|---|---|
Error |
ErrorDetail | Azure Cognitive Search からのエラー情報を提供します。 |
Value |
SuggestResult [] |
一致するレコードのコレクション。 |
QueryContext |
QueryContext | 応答の一部として返されるクエリ コンテキスト。 このプロパティはバックエンド検索に使用されます。 これは今後の機能リリースに含まれ、現在は使用されていません。 |
応答のタイプ
応答は次のタイプを返します。
ErrorDetail
これは、クエリ API によって返される ErrorDetail と同じです。
SuggestResult
提案されたテキストを提供します。
件名 | タイプ | Description |
---|---|---|
Text |
string | 提案されたテキストを提供します。 |
Document |
Dictionary<string, object> |
ドキュメント |
QueryContext
これは、クエリ API によって返される QueryContext と同じです。
使用例
次の例は、提案操作の使用方法を示しています。 これらの各例では、値「Cont」を検索パラメーターとして渡し、上位 3 つの候補を要求します。
これは、GitHub の SDK for .NET 検索操作のサンプルからの例です。 OutputSearchSuggest
静的メソッドは、検索語句 の上位 3 つの候補を返します。
/// <summary>
/// Demonstrate suggest API
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance to use.</param>
/// <param name="searchTerm">The term to use</param>
/// <returns></returns>
static void OutputSearchSuggest(IOrganizationService service, string searchTerm)
{
Console.WriteLine("OutputSearchSuggest START\n");
searchsuggestRequest request = new()
{
search = searchTerm,
top = 3
};
var searchsuggestResponse = (searchsuggestResponse)service.Execute(request);
SearchSuggestResults results = JsonConvert.DeserializeObject<SearchSuggestResults>(searchsuggestResponse.response);
results.Value?.ForEach(suggestion =>
{
Console.WriteLine($"\tText:{suggestion.Text}");
Console.WriteLine("\tDocument: ");
foreach (string key in suggestion.Document.Keys)
{
Console.WriteLine($"\t\t{key}: {suggestion.Document[key]}");
}
Console.WriteLine();
});
Console.WriteLine("OutputSearchSuggest END\n");
}
出力
searchTerm
を「Cont」に設定して ServiceClient クラスの認証されたインスタンスで OutputSearchSuggest
メソッドを呼び出す場合。
OutputSearchSuggest(service: serviceClient, searchTerm: "Cont");
出力は次のようになります。
OutputSearchSuggest START
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: 9335eda1-ef69-ee11-9ae7-000d3a88a4a2
@search.entityname: contact
@search.objecttypecode: 2
fullname: Yvonne McKay (sample)
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: 9535eda1-ef69-ee11-9ae7-000d3a88a4a2
@search.entityname: contact
@search.objecttypecode: 2
fullname: Susanna Stubberod (sample)
Text:{crmhit}cont{/crmhit}act
Document:
@search.objectid: 9735eda1-ef69-ee11-9ae7-000d3a88a4a2
@search.entityname: contact
@search.objecttypecode: 2
fullname: Nancy Anderson (sample)
OutputSearchSuggest END
サポートするクラス
OutputSearchSuggest
メソッドは、次のサポートするクラスに基づいて要求を送信し、結果を処理します。
searchsuggestRequest クラスと searchsuggestResponse クラス
これらのクラスは、.NET 用 SDK の事前バインド クラスを生成するで説明されているように、Power Platform CLI pac modelbuilder build コマンドを使用して生成されます。
ErrorDetail クラス
このクラスは、クエリの例 で使用されたのと同じ ErrorDetail
クラスです。
SuggestResults クラス
searchsuggestResponse.response
プロパティからデータを逆シリアル化するために使用される
class SearchSuggestResults
{
/// <summary>
/// Provides error information from Azure Cognitive search.
/// </summary>
[JsonProperty(PropertyName = "Error")]
public ErrorDetail? Error { get; set; }
/// <summary>
/// A collection of matching records.
/// </summary>
public List<SuggestResult>? Value { get; set; }
/// <summary>
/// The query context returned as part of response. This property is used for backend search, this is included for future feature releases, it is not currently used.
/// </summary>
public QueryContext? QueryContext { get; set; }
}
SuggestResult クラス
提案結果の結果オブジェクト。
public sealed class SuggestResult
{
/// <summary>
/// Gets or sets the text.
/// </summary>
[JsonProperty(PropertyName = "text")]
public string Text { get; set; }
/// <summary>
/// Gets or sets document.
/// </summary>
[JsonProperty(PropertyName = "document")]
public Dictionary<string, object> Document { get; set; }
}
QueryContext クラス
このクラスは、クエリの例 で使用されたのと同じ QueryContext
クラスです。
参照
Dataverse のレコードを検索する
Dataverse の検索クエリ
Dataverse の検索のオートコンプリート
Dataverse の統計と状態を検索する
Dataverse のレガシ検索
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。