Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Diese Dokumentation ist für den älteren Dataverse-Suchendpunkt vorgesehen. Es wird empfohlen, den neuesten Dataverse-Suchendpunkt zu verwenden. Weitere Informationen: Suchen nach Dataverse-Datensätzen
Um mit der Verwendung der älteren Dataverse-Suche (Version 1.0) zu beginnen, gibt Ihre Anwendung eine HTTP POST-Anforderung aus, um eine Dataverse-Suche zu starten. Geben Sie beim Suchen von Daten optionale Eigenschaften im Anfragekörper an, um Kriterien für die Suche der Umgebungsdaten festzulegen.
Die Ältere Dataverse-Suche verfügt über drei Endpunkte, die in Power Apps (make.powerapps.com) verwendet werden können:
Suche:
/api/search/v1.0/queryStellt eine Suchergebnisseite bereit.Vorschläge:
/api/search/v1.0/suggestStellt Vorschläge bereit, wenn der Benutzer Text in ein Formularfeld eingibt.AutoVervollständigen:
/api/search/v1.0/autocompleteStellt die automatische Vervollständigen von Eingaben bereit, wenn der Benutzer Text in ein Formularfeld eingibt.
In den folgenden Abschnitten wird beschrieben, wie Sie über den Anwendungscode auf die zuvor erwähnten Suchfunktionen zugreifen.
Suche
Das folgende Beispiel zeigt die Mindestsyntax einer HTTP-Anforderung für die Dataverse-Suche.
POST [Organization URI]/api/search/v1.0/query
{
"search": "<search term>"
}
Der search Eigenschaftswert enthält den Begriff, nach dem gesucht werden soll, und hat eine Beschränkung von 100 Zeichen.
Eine erfolgreiche Suchantwort gibt den HTTP-Status 200 zurück und besteht aus:
value: eine Liste von Tabellen. Standardmäßig werden 50 Ergebnisse zurückgegeben. Diese Eigenschaft enthält auch Suchhighlights, die Übereinstimmungen mit demsearch-Eigenschaftswert angeben, der imcrmhit-Tag der Antwort enthalten ist.totalrecordcount: Die Gesamtzahl der Ergebnisse (vom Typ „lang“). Ein Wert von −1 wird zurückgegeben, wennreturntotalrecordcounter auf "false" (Standardeinstellung) festgelegt ist.facets: Die Facettenergebnisse.
Darüber hinaus können Sie der Nutzlast eine oder mehrere Eigenschaften hinzufügen, um anzupassen, wie die Suche ausgeführt werden soll und welche Ergebnisse zurückgegeben werden. Die unterstützten Eigenschaften werden im folgenden Abschnitt angegeben.
Abfrageeigenschaften
Die folgenden Eigenschaften werden für die Dataverse-Suche mithilfe des Abfrageendpunkts unterstützt.
entities:[list<string>] (wahlweise)
Die Standardtabellenliste durchsucht alle durch die Dataverse-Suche konfigurierten Tabellen und Spalten. Der Administrator konfiguriert die Standardliste, wenn die Dataverse-Suche aktiviert ist.
facets:[list<string>] (wahlweise)
Facetten bieten die Möglichkeit, nach dem Abrufen einen Drilldown in die Datenergebnisse durchzuführen.
POST [Organization URI]/api/search/v1.0/query
{
"search": "maria",
"facets": ["@search.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"]
}
filter:[string] (wahlweise)
Filter werden beim Durchsuchen von Daten angewendet und in einer OData-Syntax angegeben.
POST [Organization URI]/api/search/v1.0/query
{
"search": "maria",
"filter": "account:modifiedon ge 2020-04-27T00:00:00,
activities: regardingobjecttypecode eq 'account', annotation:objecttypecode eq 'account',
incident: (prioritycode eq 1 or prioritycode eq 2)"
}
returntotalrecordcount: true | false (wahlweise)
Geben Sie true an, um die Gesamtzahl der Datensätze zurückzugeben; andernfalls "false". Der Standardwert ist false.
skip:[int] (wahlweise)
Gibt die Anzahl der zu überspringenden Suchergebnisse an.
top:[int] (wahlweise)
Gibt die Anzahl der abzurufenden Suchergebnisse an. Der Standardwert ist 50, und der Maximalwert ist 100.
orderby:[list<string>] (wahlweise)
Eine Liste von kommagetrennten Klauseln, bei denen jede Klausel aus einem Spaltennamen besteht, gefolgt von "asc" (aufsteigend, die Standardeinstellung ist) oder "desc" (absteigend). Diese Liste gibt an, wie die Ergebnisse nach Priorität sortiert werden. Standardmäßig werden die Ergebnisse in absteigender Reihenfolge der Relevanzbewertung (@search.score) aufgeführt. Bei Ergebnissen mit identischen Bewertungen ist die Sortierung zufällig.
Für eine Reihe von Ergebnissen, die mehrere Tabellentypen enthalten, muss die Liste der Klauseln für orderby global anwendbar sein (z. B. modifiedon, createdon, @search.score). Beachten Sie, dass die Angabe der Eigenschaft den orderby Standardwert außer Kraft setzt. So erhalten Sie beispielsweise Ergebnisse, die (in der angegebenen Rangfolge) nach Relevanz geordnet sind, gefolgt von den zuletzt geänderten Datensätzen, die höher in der Folge aufgeführt sind:
"orderby": ["@search.score desc", "modifiedon desc"]
Wenn die Abfrageanforderung einen Filter für einen bestimmten Tabellentyp enthält, orderby können Sie optional tabellenspezifische Spalten angeben.
searchmode:any | all (wahlweise)
Gibt an, ob any oder all die Suchbegriffe übereinstimmen müssen, um das Dokument als Übereinstimmung zu zählen. Der Standardwert lautet any.
Hinweis
Die searchMode-Eigenschaft eines Abfrageanforderungstexts steuert, ob ein Begriff mit dem NOT-Operator mit anderen Begriffen in der Abfrage durch AND- oder OR verknüpft ist (vorausgesetzt, es gibt keinen +- oder |-Operator für die anderen Begriffe).
Die Verwendung "searchMode": "any" erhöht den Rückruf von Abfragen, indem mehr Ergebnisse eingeschlossen werden, und standardmäßig wird sie als "ODER NICHT" interpretiert. Beispielsweise entspricht "wifi -luxus" Dokumenten, die entweder den Begriff "Wifi" enthalten oder diejenigen, die nicht den Begriff "Luxus" enthalten.
Die Verwendung "searchMode": "all" erhöht die Genauigkeit von Abfragen um weniger Ergebnisse und wird standardmäßig als "AND NOT" interpretiert. Beispielsweise entspricht "wifi -luxus" Dokumenten, die den Begriff "Wifi" enthalten und nicht den Begriff "Luxus" enthalten.
searchtype:simple | full (wahlweise)
Der Suchtyp gibt die Syntax einer Suchabfrage an. Verwenden Sie simple, um die einfache Abfragesyntax auszuwählen, und full, um die Lucene-Abfragesyntax auszuwählen. Der Standardwert lautet simple.
Die einfache Abfragesyntax unterstützt die folgenden Funktionen:
| Funktionalität | Beschreibung |
|---|---|
| Boolesche Operatoren | AND-Operator; mit + gekennzeichnet ODER-Operator, dargestellt mit | NICHT-Operator; dargestellt als - |
| Rangfolge-Operatoren | Ein Suchbegriff "hotel+(wifi | Luxus)" sucht nach Ergebnissen, die den Begriff "Hotel" und entweder "Wlan" oder "Luxus" (oder beides) enthalten. |
| Platzhalter | Nachgestellte Wildcards werden unterstützt. „Alp*“ sucht beispielsweise nach „alpine“. |
| Genaue Übereinstimmungen | Eine Abfrage, die in Anführungszeichen " " eingeschlossen ist. |
Die Lucene-Abfragesyntax unterstützt die folgenden Funktionen:
| Funktionalität | Beschreibung |
|---|---|
| Boolesche Operatoren | Stellt einen erweiterten Satz im Vergleich zur einfachen Abfragesyntax bereit. AND-Operator; gekennzeichnet durch AND, + OR-Operator, angegeben durch OR, || Nicht-Operator: dargestellt durch NOT, !, – |
| Rangfolgeoperatoren | Die gleiche Funktionalität wie einfache Abfragesyntax. |
| Platzhalter | Unterstützt neben einem nachfolgenden Platzhalter auch einen führenden Platzhalter. Nachgestellter Wildcard – "alp*" Führendes Wildcard - "/.*pine/" |
| Fuzzysuche | Unterstützt Abfragen, die um bis zu zwei Zeichen falsch geschrieben sind. "Uniersty~" gibt "Universität" zurück. „Blue~1“ liefert „glue“, „blues“ |
| Relevanz eines Begriffs erhöhen | Wägt bestimmte Ausdrücke in einer Abfrage anders ab. „Rock^2 electronic“ gibt Ergebnisse zurück, bei denen die Übereinstimmungen mit „Rock“ wichtiger sind als die mit „electronic“. |
| Näherungssuche | Gibt Ergebnisse zurück, bei denen die Ausdrücke innerhalb von x Wörtern liegen, um kontextbezogenere Ergebnisse zu erzielen. Beispielsweise gibt "Flughafenhotel"~5 Ergebnisse zurück, bei denen "Flughafen" und "Hotel" innerhalb von fünf Wörtern voneinander liegen und so die Chancen erhöhen, ein Hotel in der Nähe eines Flughafens zu finden. |
| Suche nach regulären Ausdrücken (regex) | Beispiel: /[mh]otel/ entspricht "motel" oder "hotel". |
Hinweis
In der Dataverse-Suche werden nur Wildcards für die Wortvervollständigung verwendet. In der Regel dauert eine Abfrage mit einem führenden Wildcard wesentlich länger als ohne Wildcard. Daher empfehlen wir Ihnen, alternative Möglichkeiten zu erkunden, um das Gewünschte zu finden, und führende Wildcards nur sparsam zu verwenden, wenn überhaupt.
Um einen der Suchoperatoren als Teil des Suchtextes zu verwenden, maskieren Sie das Zeichen, indem Sie ihm einen einzelnen Backslash voranstellen (\). Zu den Sonderzeichen, für die eine Maskierung erforderlich ist, gehören: + - & | ! ( ) { } [ ] ^ " ~ * ? : \ /
Beispiel: Einfache Suche
Das folgende Beispiel ist eine einfache Suchanforderung und -antwort.
Anforderung:
POST [Organization URI]/api/search/v1.0/query
{
"search": "maria",
"facets": ["@search.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"]
}
Antwort:
{
"value": [
{
"@search.score": 0.4547767,
"@search.highlights": {
"emailaddress1": [
"{crmhit}maria{/crmhit}@contoso.com"
],
"firstname": [
"{crmhit}Maria{/crmhit}"
],
"fullname": [
"{crmhit}Maria{/crmhit} Sullivan"
]
},
"@search.entityname": "contact",
"@search.objectid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"ownerid": "bb2500d1-5e6d-4953-8389-bfedf57e3857",
"owneridname": "Corey Gray",
"@search.ownerid.logicalname": "systemuser",
"@search.objecttypecode": 2,
"fullname": "Maria Sullivan",
"entityimage_url": **null**,
"createdon": "10/9/2020 5:27 PM",
"modifiedon": "10/9/2020 5:27 PM",
"emailaddress1": "maria@contoso.com",
"address1_city": **"Seattle"**,
"address1_telephone1": **"206-400-0200"**,
"parentcustomerid": **null**,
"parentcustomeridname": **null**,
"telephone1": **"206-400-0300"**
}
],
"facets": {
"account.primarycontactid": [],
"ownerid": [
{
"Type": "Value",
"Value": "31ca7d4b-701c-4ea9-8714-a89a5172106e",
"OptionalValue": "Corey Gray",
"Count": 1
}
],
"@search.entityname": [
{
"Type": "Value",
"Value": "contact",
"Count": 1
}
],
"modifiedon": [
{
"Type": "Range",
"To": "4/27/2019 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "4/27/2019 12:00 AM",
"To": "3/27/2020 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "3/27/2020 12:00 AM",
"To": "4/20/2020 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "4/20/2020 12:00 AM",
"To": "4/27/2020 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "4/27/2020 12:00 AM",
"Count": 1
}
],
"createdon": [
{
"Type": "Range",
"To": "4/27/2019 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "4/27/2019 12:00 AM",
"To": "3/27/2020 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "3/27/2020 12:00 AM",
"To": "4/20/2020 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "4/20/2020 12:00 AM",
"To": "4/27/2020 12:00 AM",
"Count": 0
},
{
"Type": "Range",
"From": "4/27/2020 12:00 AM",
"Count": 1
}
]
},
"totalrecordcount": -1
}
Anregungen
Vorschläge stellen eine Liste der Übereinstimmungen mit dem angegebenen Sucheigenschaftswert bereit, basierend auf der primären Spalte eines Tabellendatensatzes. Dies unterscheidet sich von einer regulären Suchanfrage, da bei einer Vorschlagssuche nur die primäre Spalte eines Datensatzes durchsucht wird, während Suchanfragen alle durchsuchbaren Spalten der Dataverse-Tabelle durchsuchen.
Das folgende Beispiel zeigt die Mindestsyntax einer HTTP-Anforderung für die Vorschlagssuche.
POST [Organization URI]/api/search/v1.0/suggest
{
"search": "<text-fragment>"
}
Der Wert der Sucheigenschaft stellt eine Textzeichenfolge bereit, damit die Suche übereinstimmen kann und eine Mindestlänge von drei Zeichen aufweist.
Eine erfolgreiche Suchantwort gibt einen HTTP-Status von 200 zurück und enthält `value`, eine Liste, die Text und Dokumente umfasst, wobei der Text ein Vorschlag mit Hervorhebungen ist und das Dokument ein Dictionary <string,object> des Vorschlagergebnisses ist. Standardmäßig werden fünf Ergebnisse zurückgegeben. Vorschlagshervorhebungen zeigen Übereinstimmungen mit dem Wert des Suchattributs an und sind im crmhit-Tag der Antwort enthalten.
Darüber hinaus können Sie dem Textkörper der Anforderung eine oder mehrere Eigenschaften hinzufügen, um anzupassen, wie die Vorschlagssuche durchgeführt werden soll und welche Ergebnisse zurückgegeben werden. Die unterstützten Eigenschaften werden im folgenden Abschnitt angegeben.
Vorschlagen von Eigenschaften
usefuzzy:true | false (wahlweise)
Verwenden Sie die Fuzzy-Suche, um bei Rechtschreibfehlern zu helfen. Der Standardwert ist false.
top:[int] (wahlweise)
Anzahl der abzurufenden Vorschläge. Der Standardwert ist 5.
orderby:[List<string>] (wahlweise)
Eine Liste von kommagetrennten Klauseln, in denen jede Klausel aus einem Spaltennamen besteht, gefolgt von asc (aufsteigend) oder desc (absteigend). Diese Liste gibt an, wie die Ergebnisse nach Rangfolge sortiert werden. Standardmäßig werden die Ergebnisse in absteigender Reihenfolge der Relevanzbewertung (@search.score) aufgeführt. Bei Ergebnissen mit identischen Bewertungen ist die Sortierung zufällig.
Für eine Reihe von Ergebnissen, die mehrere Tabellentypen enthalten, muss die Liste der Klauseln für orderby global anwendbar sein (z. B. modifiedon, createdon, @search.score). Beachten Sie, dass die Angabe der Eigenschaft den orderby Standardwert außer Kraft setzt. So erhalten Sie beispielsweise Ergebnisse, die (in der angegebenen Rangfolge) nach Relevanz geordnet sind, gefolgt von den zuletzt geänderten Datensätzen, die höher in der Folge aufgeführt sind:
"orderby": ["@search.score desc", "modifiedon desc"]
Wenn die Abfrageanforderung einen Filter für einen bestimmten Tabellentyp enthält, orderby können Sie optional tabellenspezifische Spalten angeben.
entities:[list<string>] (wahlweise)
Standardmäßig werden alle durch die Dataverse-Suche konfigurierten Tabellen durchsucht.
filter:[string] (wahlweise)
Filter werden beim Durchsuchen von Daten angewendet und werden in der OData-Standardsyntax angegeben.
Anforderung:
POST [Organization URI]/api/search/v1.0/suggest
{
"search": "mar",
"filter": "account:modifiedon ge 2020-04-27T00:00:00,
activities:regardingobjecttypecode eq 'account', annotation:objecttypecode eq 'account'"
}
Beispiel: Vorschlagssuche
Das folgende Beispiel zeigt eine einfache Vorschlagssuchanforderung.
Anforderung:
POST [Organization URI]/api/search/v1.0/suggest
{
"search": "mar"
}
Antwort:
{
"value": [
{
"text": "{crmhit}Mar{/crmhit}ia Sullivan",
"document": {
"@search.objectid": "bbbbbbbb-1111-2222-3333-cccccccccccc",
"@search.entityname": "contact",
"@search.objecttypecode": 2,
"fullname": "Maria Sullivan",
"entityimage_url": **null**,
"emailaddress1": "maria@contoso.com",
"address1_city": **null**,
"address1_telephone1": **null**,
"parentcustomerid": **null**,
"parentcustomeridname": **null**,
"telephone1": **null**
}
}
]
}
AutoVervollständigen
Stellt die automatische Vervollständigen von Benutzereingaben bereit. Autovervollständigung basiert auf der primären Spalte eines Tabellendatensatzes.
Die Mindestsyntax einer HTTP-Anforderung für die Dataverse-Suche lautet wie folgt.
POST [Organization URI]/api/search/v1.0/autocomplete
{
"search": "<text-fragment>"
}
Eine erfolgreiche Suchantwort gibt einen HTTP-Status von 200 zurück und besteht aus "value", einer Zeichenfolge.
Darüber hinaus können Sie dem Anforderungstext eine oder mehrere Eigenschaften hinzufügen, um anzupassen, wie die Suche ausgeführt werden soll und welche Ergebnisse zurückgegeben werden. Die unterstützten Eigenschaften werden im folgenden Abschnitt angegeben.
AutoVervollständigen-Eigenschaften
usefuzzy: true | false (wahlweise)
Fuzzysuche zur Unterstützung bei Tippfehlern. Der Standardwert ist false.
entities: [list<string>] (wahlweise)
Der Standardbereich umfasst die Suche in allen durch die Dataverse-Suche konfigurierten Tabellen und Spalten.
filter: [string] (wahlweise)
Filter werden beim Durchsuchen von Daten angewendet und werden in der OData-Standardsyntax angegeben.
Anforderung:
POST [Organization URI]/api/search/v1.0/autocomplete
{
"search": "mar",
"filter": "account:modifiedon ge 2020-04-27T00:00:00,
activities:regardingobjecttypecode eq 'account', annotation:objecttypecode eq 'account'"
}
Beispiel: AutoVervollständigen-Suche
Das folgende Beispiel zeigt eine einfache AutoVervollständigen-Anforderung.
Anforderung:
POST [Organization URI]/api/search/v1.0/autocomplete
{
"search": "mar"
}
Antwort:
{
"value": "{crmhit}maria{/crmhit}"
}
Siehe auch
Nach Dataverse-Datensätzen suchen
Dataverse Search-Abfrage
Dataverse Suchvorschläge
AutoVervollständigen der Dataverse-Suche
Dataverse-Suchstatistik und Status