Dataverse 検索のオートコンプリート
オートコンプリート API を使用すると、消費者は検索クエリ語句の一部を Dataverse 検索にを送信して、ユーザーの潜在的な意図になる検索語句を取得することができます。
この API を使用して、より豊かな検索ボックスのエクスペリエンスをサポートできます。 ユーザーが検索語句の各文字を入力すると、オートコンプリートを呼び出して検索ボックスのクエリにオートコンプリートの結果が入力され、先行入力による単語補完が提供されます。 たとえば、set
と入力すると、settings
とオートコンプリートされます。
検索語句に加えて、返される結果は、次のパラメーターに渡される値によって影響を受ける可能性があります。
件名 | タイプ | Description | 詳細情報 |
---|---|---|---|
search |
string | 必須。 検索語句 | search パラメーター |
entities |
string | 既定のスコープは、検索が構成されたすべてのエンティティとフィールドの検索です。 | entities パラメーター |
filter |
string | 返される結果を減らすためのフィルター条件。 | filter パラメーター |
fuzzy |
ブール値 | あいまい検索はスペルミスを防ぐのに役立ちます。 既定値は false です。 | fuzzy パラメーター |
Parameters
このセクションには、上の表のパラメーターに関する詳細が含まれています。
search
パラメーター
種類: 文字列
オプション: False
検索語句は、少なくとも 1 文字の長さがある必要があり、100 文字の制限があります。
entities
パラメーター
種類: 文字列
オプション: True
既定のスコープは、検索が構成されたすべてのエンティティとフィールドの検索です。 このパラメーターは、クエリ API で使用されるのと同じ クエリの SearchEntity タイプ を使用します。
filter
パラメーター
種類: 文字列
オプション: True
返される結果を減らすためのフィルター条件。 このパラメーターは、クエリの filter パラメーター と同じ文字列値を使用します。
fuzzy
パラメーター
種類: ブール値
オプション: True
あいまい検索はスペルミスを防ぐのに役立ちます。 既定値は false です。
True に設定すると、この API は、検索テキストに代用または欠落した文字がある場合でも提案を検索します。 編集距離はクエリ文字列ごとに 1 です。 クエリ文字列が複数の語句である場合、欠落した文字、余分な文字、代用文字、または置き換え文字は文字列全体で 1 つだけです。 あいまい一致を有効にすると、一部のシナリオではエクスペリエンスが向上しますが、あいまい提案の検索が遅くなり、より多くのリソースを消費するため、パフォーマンスが犠牲になります。
回答
提案操作からの応答は、JSON データを含むエスケープ文字列です。
エスケープされていない応答には、次のプロパティを使用する JSON が含まれています。
件名 | タイプ | Description |
---|---|---|
Error |
ErrorDetail | Azure Cognitive Search からのエラー情報を提供します。 |
Value |
string | テキスト。 |
QueryContext |
QueryContext | このプロパティはバックエンド検索に使用されます。 これは今後の機能リリースに含まれ、現在は使用されていません。 |
応答のタイプ
応答は次のタイプを返します。
ErrorDetail
このタイプは、クエリ API によって返される ErrorDetail と同じです。
QueryContext
このタイプは、クエリ API によって返される QueryContext と同じです。
使用例
次の例は、オートコンプリート操作の使用方法を示しています。 これらの例は、取引先企業テーブルの name
フィールドのオートコンプリート結果を返します。
これは、GitHub の SDK for .NET 検索操作のサンプルからの例です。 OutputAutoComplete
静的メソッドは、search パラメーターの値を受け入れます。
/// <summary>
/// Demonstrate autocomplete API
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance to use.</param>
/// <param name="searchTerm">The term to use</param>
/// <returns></returns>
static void OutputAutoComplete(IOrganizationService service, string searchTerm)
{
Console.WriteLine("OutputAutoComplete START\n");
searchautocompleteRequest request = new()
{
search = searchTerm,
filter = null,
fuzzy = true,
entities = JsonConvert.SerializeObject(new List<SearchEntity>()
{
new SearchEntity()
{
Name = "account",
SelectColumns = new List<string>() { "name", "createdon" },
SearchColumns = new List<string>() { "name" },
}
}
)
};
var searchautocompleteResponse = (searchautocompleteResponse)service.Execute(request);
SearchAutoCompleteResults results = JsonConvert.DeserializeObject<SearchAutoCompleteResults>(searchautocompleteResponse.response);
Console.WriteLine($"\tSearch: {request.search}");
Console.WriteLine($"\tValue: {results.Value}");
Console.WriteLine("\nOutputAutoComplete END\n");
}
出力
searchTerm
を「Con」に設定して ServiceClient クラスの認証されたインスタンスで OutputAutoComplete
メソッドを呼び出す場合。
OutputAutoComplete(service: serviceClient, searchTerm: "Con");
出力は次のようになります。
OutputAutoComplete START
Search: Con
Value: {crmhit}contoso{/crmhit}
OutputAutoComplete END
サポートするクラス
OutputAutoComplete
メソッドは、次のサポートするクラスに基づいて要求を送信し、結果を処理します。
searchautocompleteRequest と searchautocompleteResponse クラス
これらのクラスは、.NET 用 SDK の事前バインド クラスを生成するで説明されているように、Power Platform CLI pac modelbuilder build コマンドを使用して生成されます。
SearchEntity クラス
このクラスは、クエリの例 で使用されたのと同じ SearchEntity
クラスです。 この場合、searchautocompleteRequest.entities
プロパティを設定することができます。
SearchAutoCompleteResults クラス
searchautocompleteResponse.response
文字列プロパティから JSON データを逆シリアル化するために使用します。
class SearchAutoCompleteResults
{
/// <summary>
/// The Azure Cognitive error detail returned as part of response.
/// </summary>
public ErrorDetail? Error { get; set; }
/// <summary>
/// The text
/// </summary>
public string? Value { get; set; }
/// <summary>
/// This request is used for backend search, this is included for future feature releases, it is not currently used.
/// </summary>
public QueryContext? QueryContext { get; set; }
}
ErrorDetail クラス
このクラスは、クエリの例 で使用されたのと同じ ErrorDetail
クラスです。
QueryContext クラス
このクラスは、クエリの例 で使用されたのと同じ QueryContext
クラスです。
参照
Dataverse のレコードを検索する
Dataverse の検索クエリ
Dataverse の検索の提案
Dataverse の統計と状態を検索する
Dataverse のレガシ検索
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。