Requête de recherche Dataverse
L’opération de requête renvoie des résultats de recherche basés sur un terme de recherche.
En plus d’un critère de recherche, les résultats renvoyés peuvent être influencés en transmettant des valeurs pour les paramètres suivants :
Nom | Type | Description | Pour plus d’informations : |
---|---|---|---|
search |
string | Obligatoire. Texte à rechercher. | paramètre de recherche |
count |
bool | Indique s’il faut renvoyer le nombre total d’enregistrements. | paramètre count |
entities |
string | Limite la portée de la recherche à un sous-ensemble de tables. | paramètre d’entités |
facets |
string | Les facettes prennent en charge la capacité d’explorer les résultats des données après leur extraction. | paramètre de facettes |
filter |
string | Limite la portée des résultats de recherche renvoyés. | paramètre de filtre |
options |
string | Les options sont des paramètres configurés pour rechercher un critère de recherche. | paramètre options |
orderby |
string | Spécifie comment classer les résultats par ordre de priorité. | paramètre orderby |
skip |
int | Spécifie le nombre de résultats de recherche à ignorer. | paramètres sauter et haut |
top |
int | Spécifie le nombre de résultats de recherche à récupérer. | paramètres sauter et haut |
Paramètres
Cette section comprend des détails sur les paramètres introduits dans le tableau ci-dessus.
search
Paramètre
Type : chaîne
Facultatif : faux
Le paramètre de recherche contient le texte à rechercher. C’est le seul paramètre obligatoire. Le terme recherché doit comporter au moins un caractère et est limité à 100 caractères.
Syntaxe de recherche simple
Par défaut, le paramètre de recherche prend en charge une syntaxe de recherche simple, comme décrit dans le tableau suivant :
Fonctionnalité | Description |
---|---|
Opérateurs booléens | Opérateur AND ; désigné par + Opérateur OU ; désigné par | Opérateur NON ; désigné par - |
Opérateurs de priorité | Un critère de recherche hotel+(wifi | luxury) recherche les résultats contenant le terme hotel et soit wifi ou luxury (ou les deux). |
Caractères génériques | Les caractères génériques de fin sont pris en charge. Par exemple, Alp* recherche « alpin ». |
Concordances exactes | Requête entre guillemets " " . |
Notes
Pour utiliser l’un des opérateurs de recherche dans le cadre du texte de recherche, échappez le caractère en le préfixant avec une seule barre oblique inverse (\
). Les caractères spéciaux qui nécessitent un échappement sont les suivants : + - & | ! ( ) { } [ ] ^ " ~ * ? : \ /
.
Par exemple, un numéro de téléphone échappé pourrait ressembler à ceci : \+1\(800\)555\-1234
.
À l’aide du paramètre options
, vous pouvez activer la syntaxe de requête Lucerne qui active différents opérateurs.
count
Paramètre
Type : bool
Facultatif : vrai
Indique s’il faut renvoyer le nombre total d’enregistrements. Si vous ne définissez pas ce paramètre, la propriété de réponse Count
est -1
.
entities
Paramètre
Type : chaîne
Facultatif : vrai
Par défaut, toutes les tables activées pour la recherche sont recherchées sauf si vous spécifiez un sous-ensemble à l’aide du paramètre entities
.
Lorsque vous définissez une entité, vous pouvez également spécifier les colonnes que vous souhaitez renvoyer et les colonnes dans lesquelles rechercher. Vous pouvez également inclure des critères de filtre pour le tableau.
Pour obtenir une liste des tables activées pour l’environnement, utilisez l’API Statut de recherche et recherchez les tables répertoriées par entitylogicalname
dans entitystatusresults
.
Type d’entité de recherche
Utilisez ce type pour composer le tableau de tables à transmettre au paramètre entities
.
Nom de champ | Type | Description |
---|---|---|
name |
string | Obligatoire. Nom logique de la table. Spécifie la portée de la requête. |
selectColumns |
string[] | Facultatif. Liste des colonnes qui doivent être projetées lorsque les documents de table sont renvoyés en réponse. S’il est vide, seul le nom principal de la table est renvoyé. |
searchColumns |
string[] | Facultatif. Liste des colonnes sur lesquelles étendre la requête. S’il est vide, seul le nom principal de la table fait l’objet d’une recherche. |
filter |
string | Facultatif. Filtres appliqués sur l’entité. |
Exemple
Voici un exemple de données JSON qui utilisent le schéma décrit ci-dessus.
[
{
"name":"account",
"selectColumns":["name","address1_city"],
"searchColumns":["name","address1_city"],
"filter":"modifiedon ge 2018-01-01T00:00:00Z"
},
{
"name":"contact",
"selectColumns":["fullname","address1_city"],
"searchColumns":["fullname","address1_city"],
"filter":"modifiedon ge 2018-01-01T00:00:00Z"
}
]
Pour utiliser ces données, vous devez échapper la chaîne et la transmettre comme valeur du paramètre entities
dans le corps de la requête :
{
"search": "maria",
"entities":"[{\"name\":\"account\",\"selectColumns\":[\"name\",\"address1_city\"],\"searchColumns\":[\"name\",\"address1_city\"],\"filter\":\"modifiedon ge 2018-01-01T00:00:00Z\"},{\"name\":\"contact\",\"selectColumns\":[\"fullname\",\"address1_city\"],\"searchColumns\":[\"fullname\",\"address1_city\"],\"filter\":\"modifiedon ge 2018-01-01T00:00:00Z\"}]"
}
facets
Paramètre
Type : chaîne
Facultatif : vrai
Le paramètre de facette est facultatif. La chaîne peut contenir des paramètres permettant de personnaliser le facettage, exprimés sous forme de paires nom-valeur séparées par des virgules. Utilisez des facettes pour regrouper vos résultats de recherche.
Définition de facette
Les facettes sont définies comme un tableau de chaînes, par exemple :
[
"entityname,count:100",
"account:primarycontactid,count:100",
"ownerid,count:100",
"modifiedon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00",
"createdon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00"
]
Chaque élément du tableau représente une manière différente de regrouper les données renvoyées par la requête. Pour chaque propriété renvoyée, vous pouvez spécifier les facettes appropriées à l’aide des valeurs du tableau suivant :
Type de facette | Description |
---|---|
count |
Nombre maximum de termes facette. La valeur par défaut est 10. Il n’existe aucune limite supérieure |
sort |
Peut être défini sur count , -count , value , -value . Utilisez count pour trier dans l’ordre décroissant par count . Utilisez -count pour trier dans l’ordre croissant par count . Utilisez value pour trier dans l’ordre croissant par value . Utilisez -value pour trier dans l’ordre décroissant par value . |
values |
Défini sur des valeurs numériques ou Edm.DateTimeOffset délimitées par des barres verticales spécifiant un ensemble dynamique de valeurs d’entrée de facette. Les valeurs doivent être répertoriées par ordre séquentiel et croissant pour obtenir les résultats attendus. |
interval |
Intervalle entier supérieur à zéro pour les nombres, ou minute, heure, jour, semaine, mois, trimestre, année pour les valeurs date/heure. |
timeoffset |
Définissez sur ([+-]hh:mm , [+-]hhmm ou [+-]hh ). S’il est utilisé, le paramètre timeoffset doit être combiné avec l’option intervalle, et uniquement lorsqu’il est appliqué à un champ de type Edm.DateTimeOffset . La valeur spécifie le décalage horaire UTC à prendre en compte lors de la définition des limites horaires. |
Notes
count
et sort
peuvent être combinés dans la même spécification de facette, mais ils ne peuvent pas être combinés avec interval
ou values
, et interval
et values
ne peuvent pas être combinés.
Définissez la valeur facets
avec une chaîne d’échappement contenant la définition des facettes.
{
"search": "maria",
"facets": "[\"entityname,count:100\",\"account:primarycontactid,count:100\",\"ownerid,count:100\",\"modifiedon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00\",\"createdon,values:2019-04-27T00:00:00|2020-03-27T00:00:00|2020-04-20T00:00:00|2020-04-27T00:00:00\"]"
}
Pour plus d’informations :
- Recherche cognitive Azure : ajouter une navigation à facettes à une application de recherche
- Recherche cognitive Azure API REST > rechercher des documents > paramètres de requête
filter
Paramètre
Type : chaîne
Facultatif : vrai
Les filtres limitent la portée des résultats de recherche renvoyés. Utilisez des filtres pour exclure les résultats indésirables. Il s’agit d’un filtre de niveau supérieur qui permet de filtrer les colonnes communes sur plusieurs entités telles que createdon
ou modifiedon
etc.
Appliquez des filtres en utilisant cette syntaxe : <attribute logical name> <filter>
où le nom logique de la table spécifie l’entité à laquelle le filtre doit être appliqué.
Les filtres utilisent les opérateurs de requête suivants :
Opérateur | Description | Exemple |
---|---|---|
Opérateurs de comparaison | ||
eq |
Égal à | revenue eq 100000 |
ne |
Différent de | revenue ne 100000 |
gt |
Supérieur(e) à | revenue gt 100000 |
ge |
Supérieur ou égal à | revenue ge 100000 |
lt |
Inférieur(e) à | revenue lt 100000 |
le |
Inférieur ou égal à | revenue le 100000 |
Opérateurs logiques | ||
and |
ET logique | revenue lt 100000 and revenue gt 2000 |
or |
OU logique | name eq 'sample' or name eq 'test' |
not |
Négation logique | not name eq 'sample' |
Opérateurs de groupement | ||
( ) |
Groupement de priorité | (name eq 'sample') or name eq 'test') and revenue gt 5000 |
options
Paramètre
Type : chaîne
Facultatif : vrai
Les options sont des paramètres configurés pour rechercher un critère de recherche. Définissez la valeur options
sur une Dictionary<string, string>
sérialisée de ces options, comme "{'querytype': 'lucene', 'searchmode': 'all', 'besteffortsearchenabled': 'true', 'grouprankingenabled': 'true'}"
.
Le tableau suivant répertorie les options :
Option | Description |
---|---|
querytype |
Les valeurs peuvent être simple ou lucene syntaxe de requête Lucerne |
besteffortsearchenabled |
Permet au flux de travail de requête intelligent de renvoyer un ensemble probable de résultats si aucune bonne correspondance n’est trouvée pour les termes de la demande de recherche. |
groupranking |
Activez le classement des résultats dans la réponse optimisée pour l’affichage dans les pages de résultats de recherche où les résultats sont regroupés par tableau. |
searchmode |
Lorsque l’option est définie sur all , tous les termes de la recherche doivent être mis en correspondance pour que le document soit comptabilisé comme pertinent. Définir sa valeur sur any par défaut pour correspondre à n’importe quel mot du critère de recherche. |
Syntaxe de requête Lucerne
La syntaxe de requête Lucene prend en charge les fonctionnalités suivantes :
Fonctionnalité | Description |
---|---|
Opérateurs booléens | Fournit un ensemble étendu par rapport à une syntaxe de requête simple. Opérateur AND ; désigné par AND , && , + Opérateur OR ; désigné par OR , || Opérateur NOT ; désigné par NOT , ! , – |
Caractères génériques | En plus d’un caractère générique de fin, prend également en charge un caractère générique de début. Caractère générique de fin - alp* Caractère générique de début - /.*pine/ |
Recherche approximative | Prend en charge les requêtes mal orthographiées jusqu’à 2 caractères.Uniersty~ retourne University Blue~1 retourne glue , blues |
Mise en avant des termes | Pondère différemment certains termes d’une requête.Rock^2 electronic renvoie des résultats où les concordances de rock sont plus importantes que celles de electronic . |
Recherche par proximité | Renvoie les résultats où les termes sont à moins de X mots les uns des autres, pour des résultats plus contextuels. Par exemple, "airport hotel"~5 renvoie les résultats où les mots airport et hotel sont à moins de 5 mots l’un de l’autre, augmentant ainsi les chances de trouver un hôtel situé à proximité d’un aéroport. |
Recherche par expression régulière (regex) | Par exemple, /[mh]otel/ correspond à motel ou hotel . |
orderby
Paramètre
Type : chaîne
Facultatif : vrai
Utilisez le paramètre orderby
pour remplacer l’ordre par défaut. Par défaut, les résultats sont répertoriés par ordre décroissant de score de pertinence (@search.score
). Pour les résultats avec des scores identiques, le classement sera aléatoire. Vous ne pouvez utiliser ce paramètre que lorsque le type de requête est Lucene avec des caractères génériques dans la chaîne de requête.
Utilisez une liste de clauses séparées par des virgules où chaque clause se compose d’un nom de colonne suivi de asc
(croissant, qui est la valeur par défaut) ou desc
(décroissant).
Pour un ensemble de résultats contenant plusieurs types de table, la liste des clauses pour orderby
doit être globalement applicable (par exemple, modifiedon
, createdon
, @search.score
). Par exemple, pour classer les résultats (par ordre de priorité) par pertinence, suivis des enregistrements les plus récemment modifiés répertoriés le plus haut :
"orderby": ["@search.score desc", "modifiedon desc"]
Si la demande de requête inclut un filtre pour un type de table spécifique, orderby
peut éventuellement spécifier des colonnes spécifiques à la table.
Paramètres skip
et top
Type : entier
Facultatif : vrai
Vous pouvez utiliser ces paramètres avec le paramètre de comptage pour créer une expérience paginée.
Par défaut, 50 résultats maximum sont renvoyés simultanément. Vous pouvez utiliser top
pour l’augmenter jusqu’à 100, mais le plus souvent, vous utiliserez top
pour spécifier un jeu de résultats plus petit, tel que 10, puis skip
pour contourner les résultats précédemment renvoyés lorsque l’utilisateur passe à la page suivante.
Response
La réponse de l’opération de requête est une chaîne d’échappement qui inclut des données JSON.
La réponse sans échappement contient du JSON utilisant les propriétés suivantes.
Nom | Type | Description |
---|---|---|
Error |
ErrorDetail | Fournit des informations sur les erreurs de la recherche cognitive Azure. |
Value |
QueryResult [] |
Une collection d’enregistrements correspondants. |
Facets |
Dictionary<string, FacetResult[]> |
Si des facettes ont été demandées dans la requête, un dictionnaire de valeurs de facettes. |
QueryContext |
QueryContext | Cette propriété est utilisée pour la recherche back-end. Il est inclus pour les futures versions de fonctionnalités et n’est pas utilisé actuellement. |
Count |
Entier long | Si "Count": true est inclus dans le corps de la demande, le nombre de tous les documents qui correspondent à la recherche, en ignorant le haut et le saut |
Types de réponse
Cette section décrit les types renvoyés avec la réponse.
ErrorDetail
L’erreur de recherche cognitive Azure renvoyée dans le cadre de la réponse.
Nom | Type | Description |
---|---|---|
code |
string | Code d’erreur. |
message |
string | Message d’erreur. |
propertybag |
Dictionary<string, object> |
Plus d’informations sur les erreurs. |
QueryResult
Chaque élément QueryResult
retourné dans la propriété de la réponse Value
représente un enregistrement dans Dataverse.
Nom | Type | Description |
---|---|---|
Id |
string | Identificateur de l’enregistrement. |
EntityName |
string | Nom logique de la table. |
ObjectTypeCode |
int | Code type d’objet de ligne. |
Attributes |
Dictionary<string, object> |
Attributs de l’enregistrement |
Highlights |
Dictionary<string, string[]> |
Points clés. |
Score |
double | Score du document. |
FacetResult
Résultat d’une requête à facettes qui indique le nombre de documents dont le champ se situe dans une plage particulière ou possède une valeur ou un intervalle particulier.
Nom | Type | Description |
---|---|---|
count |
Long ? | Nombre de documents entrant dans le compartiment décrit par cette facette. |
from |
object | Valeur indiquant la limite inférieure inclusive de la plage de la facette, ou null pour indiquer qu’il n’y a pas de limite inférieure. |
to |
object | Valeur indiquant la limite supérieure exclusive de la plage de la facette, ou null pour indiquer qu’il n’y a pas de limite supérieure. |
type |
Value | Range |
Type de la facette. |
value |
object | Valeur de la facette, ou limite inférieure inclusive s’il s’agit d’une facette d’intervalle. |
optionalvalue |
object | Une valeur autre ou facultative de la facette, renseignée lors du facettage lors des recherches. |
QueryContext
Contexte de requête renvoyé dans le cadre de la réponse. Cette propriété est utilisée pour la recherche back-end. Il est inclus pour les futures versions de fonctionnalités et n’est pas utilisé actuellement.
Nom | Type | Description |
---|---|---|
originalquery |
string | La chaîne de requête telle que spécifiée dans la demande. |
alteredquery |
string | La chaîne de requête que la recherche Dataverse a utilisée pour effectuer la requête. La recherche Dataverse utilise la chaîne de requête modifiée si la chaîne de requête d’origine contenait des fautes d’orthographe ou n’a pas donné de résultats optimaux. |
reason |
string[] | Les raisons derrière la requête modifient la décision par recherche Dataverse. |
spellsuggestions |
string[] | La suggestion d’orthographe qui correspond aux mots probables qui représentent l’intention de l’utilisateur. Rempli uniquement lorsque Dataverse modifie la recherche de requête en raison de la vérification orthographique. |
Examples
Les exemples suivants montrent comment utiliser l’opération de requête. Ces exemples effectuent une opération de recherche sur les colonnes name
et fullname
des tables de comptes et de contacts, respectivement, pour les enregistrements créés après le 15 août 2022 et classe les sept premiers résultats en fonction du champ createdon
, dans l’ordre décroissant.
Cet exemple est tiré de l’exemple du SDK pour les opérations de recherche .NET sur GitHub. La méthode statique OutputSearchQuery
accepte une valeur pour le paramètre de recherche.
/// <summary>
/// Demonstrate query API
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance to use.</param>
/// <param name="searchTerm">The term to search for</param>
/// <returns></returns>
static void OutputSearchQuery(IOrganizationService service, string searchTerm)
{
Console.WriteLine("OutputSearchQuery START\n");
searchqueryRequest request = new() {
search = searchTerm,
count = true,
top = 7,
entities = JsonConvert.SerializeObject(new List<SearchEntity>()
{
new SearchEntity()
{
Name = "account",
SelectColumns = new List<string>() { "name", "createdon" },
SearchColumns = new List<string>() { "name" },
Filter = "statecode eq 0"
},
new SearchEntity()
{
Name = "contact",
SelectColumns = new List<string>() { "fullname", "createdon" },
SearchColumns = new List<string>() { "fullname" },
Filter = "statecode eq 0"
}
}),
orderby = JsonConvert.SerializeObject(new List<string>() { "createdon desc" }),
filter = "createdon gt 2022-08-15"
};
var searchqueryResponse = (searchqueryResponse)service.Execute(request);
var queryResults = JsonConvert.DeserializeObject<SearchQueryResults>(searchqueryResponse.response);
Console.WriteLine($"\tCount:{queryResults.Count}");
Console.WriteLine("\tValue:");
queryResults.Value.ForEach(result =>
{
Console.WriteLine($"\t\tId:{result.Id}");
Console.WriteLine($"\t\tEntityName:{result.EntityName}");
Console.WriteLine($"\t\tObjectTypeCode:{result.ObjectTypeCode}");
Console.WriteLine("\t\tAttributes:");
foreach (string key in result.Attributes.Keys)
{
Console.WriteLine($"\t\t\t{key}:{result.Attributes[key]}");
}
Console.WriteLine("\t\tHighlights:");
foreach (string key in result.Highlights.Keys)
{
Console.WriteLine($"\t\t\t{key}:");
foreach (string value in result.Highlights[key])
{
Console.WriteLine($"\t\t\t\t{value}:");
}
}
Console.WriteLine($"\t\tScore:{result.Score}\n");
});
Console.WriteLine("OutputSearchQuery END\n");
}
Sortie
Lorsque vous appelez la méthode OutputSearchQuery
avec une instance authentifiée de la classe ServiceClient avec le searchTerm
défini sur Contoso :
OutputSearchQuery(service: serviceClient, searchTerm: "Contoso");
Le résultat ressemble à ce qui suit :
OutputSearchQuery START
Count:1
Value:
Id:8b35eda1-ef69-ee11-9ae7-000d3a88a4a2
EntityName:account
ObjectTypeCode:0
Attributes:
@search.objecttypecode:1
name:Contoso Pharmaceuticals (sample)
createdon:10/13/2023 5:41:21 PM
createdon@OData.Community.Display.V1.FormattedValue:10/13/2023 5:41 PM
Highlights:
name:
{crmhit}Contoso{/crmhit} Pharmaceuticals (sample):
Score:4.986711
OutputSearchQuery END
Classes de soutien
La méthode OutputSearchQuery
dépend des classes de soutien suivantes pour envoyer la requête et traiter le résultat :
Classes searchqueryRequest et searchqueryResponse
Ces classes sont générées à l’aide de la commande de CLI Power Platform pac modelbuilder build comme décrit dans Générer des classes à liaison anticipée pour le SDK pour .NET.
Classe SearchEntity
Utilisée pour composer des données de type SearchEntity .
public sealed class SearchEntity
{
/// <summary>
/// Gets or sets the logical name of the table. Specifies scope of the query.
/// </summary>
[DataMember(Name = "name", IsRequired = true)]
public string Name { get; set; }
/// <summary>
/// Gets or sets the list of columns that needs to be projected when table documents are returned in response.
/// If empty, only PrimaryName will be returned.
/// </summary>
[DataMember(Name = "selectcolumns")]
public List<string> SelectColumns { get; set; }
/// <summary>
/// Gets or sets the list of columns to scope the query on.
/// If empty, only PrimaryName will be searched on.
/// </summary>
[DataMember(Name = "searchcolumns")]
public List<string> SearchColumns { get; set; }
/// <summary>
/// Gets or sets the filters applied on the entity.
/// </summary>
[DataMember(Name = "filter")]
public string Filter { get; set; }
}
Classe SearchQueryResults
À utiliser pour désérialiser les données JSON de la propriété de chaîne searchqueryResponse.response
.
public sealed class SearchQueryResults
{
/// <summary>
/// Provides error information from Azure Cognitive search.
/// </summary>
public ErrorDetail? Error { get; set; }
/// <summary>
/// A collection of matching records.
/// </summary>
public List<QueryResult>? Value { get; set; }
/// <summary>
/// If facets were requested in the query, a dictionary of facet values.
/// </summary>
public Dictionary<string, IList<FacetResult>>? Facets { get; set; }
/// <summary>
/// The query context returned as part of response. This property is used for backend search. It is included for future feature releases and is not currently used.
/// </summary>
public QueryContext? QueryContext { get; set; }
/// <summary>
/// If `"Count": true` is included in the body of the request, the count of all documents that match the search, ignoring top and skip.
/// </summary>
public long Count { get; set; }
}
Classe ErrorDetail
Utilisée pour désérialiser les données ErrorDetail.
public sealed class ErrorDetail
{
/// <summary>
/// Gets or sets the error code.
/// </summary>
[DataMember(Name = "code")]
public string Code { get; set; }
/// <summary>
/// Gets or sets the error message.
/// </summary>
[DataMember(Name = "message")]
public string Message { get; set; }
/// <summary>
/// Gets or sets additional error information.
/// </summary>
[DataMember(Name = "propertybag")]
public Dictionary<string, object> PropertyBag { get; set; }
}
Classe QueryResult
Utilisée pour désérialiser les données QueryResult.
public sealed class QueryResult
{
/// <summary>
/// Gets or sets the identifier of the record
/// </summary>
public string Id { get; set; }
/// <summary>
/// Gets or sets the logical name of the table
/// </summary>
public string EntityName { get; set; }
/// <summary>
/// Gets or sets the object type code
/// </summary>
public int ObjectTypeCode { get; set; }
/// <summary>
/// Gets or sets the record attributes
/// </summary>
public Dictionary<string, object> Attributes { get; set; }
/// <summary>
/// Gets or sets the highlights
/// </summary>
public Dictionary<string, string[]> Highlights { get; set; }
// Gets or sets the document score
public double Score { get; set; }
}
Classe FacetResult
Utilisée pour désérialiser les données FacetResult.
public sealed class FacetResult
{
/// <summary>
/// Gets or sets the count of documents falling within the bucket described by this facet.
/// </summary>
[DataMember(Name = "count")]
public long? Count { get; set; }
/// <summary>
/// Gets or sets value indicating the inclusive lower bound of the facet's range, or null to indicate that there is no lower bound.
/// </summary>
[DataMember(Name = "from")]
public object From { get; set; }
/// <summary>
/// Gets or sets value indicating the exclusive upper bound of the facet's range, or null to indicate that there is no upper bound.
/// </summary>
[DataMember(Name = "to")]
public object To { get; set; }
/// <summary>
/// Gets or sets type of the facet - Value or Range.
/// </summary>
[DataMember(Name = "type")]
public FacetType Type { get; set; }
/// <summary>
/// Gets or sets value of the facet, or the inclusive lower bound if it's an interval facet.
/// </summary>
[DataMember(Name = "value")]
public object Value { get; set; }
/// <summary>
/// Gets or sets additional/ Optional value of the facet, will be populated while faceting on lookups.
/// </summary>
[DataMember(Name = "optionalvalue")]
public object OptionalValue { get; set; }
}
Classe FacetType
Spécifie le type de résultat d’une requête de facettes.
public enum FacetType
{
/// <summary>
/// The facet counts documents with a particular field value.
/// </summary>
[EnumMember(Value = "value")]
Value = 0,
/// <summary>
/// The facet counts documents with a field value in a particular range.
/// </summary>
[EnumMember(Value = "range")]
Range = 1,
}
Classe QueryContext
Utilisée pour désérialiser les données QueryContext.
public sealed class QueryContext
{
/// <summary>
/// Gets or sets the query string as specified in the request.
/// </summary>
[DataMember(Name = "originalquery")]
public string OriginalQuery { get; set; }
/// <summary>
/// Gets or sets the query string that Dataverse search used to perform the query.
/// Dataverse search uses the altered query string if the original query string contained spelling mistakes or did not yield optimal results.
/// </summary>
[DataMember(Name = "alteredquery")]
public string AlteredQuery { get; set; }
/// <summary>
/// Gets or sets the reason behind query alter decision by Dataverse search.
/// </summary>
[DataMember(Name = "reason")]
public List<string> Reason { get; set; }
/// <summary>
/// Gets or sets the spell suggestion that are the likely words that represent user's intent.
/// This will be populated only when the query was altered by Dataverse search due to spell check.
/// </summary>
[DataMember(Name = "spellsuggestions")]
public List<string> SpellSuggestions { get; set; }
}
Voir aussi
Rechercher des enregistrements Dataverse
Suggestion de recherche Dataverse
Recherche par exécution automatique Dataverse
Statistiques et statut de recherche Dataverse
Recherche héritée Dataverse
Notes
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).