Hinzufügen der Rechtschreibprüfung zu Abfragen in Azure KI Search

Wichtig

Die Rechtschreibkorrektur befindet sich in der öffentlichen Vorschau und unterliegt den zusätzlichen Nutzungsbedingungen. Diese Funktion ist über das Azure-Portal, Vorschau-REST-APIs und Betaversionen von Azure SDK-Bibliotheken verfügbar.

Sie können den Abruf verbessern, indem Sie die Rechtschreibung von Wörtern in einer Abfrage korrigieren, bevor sie an die Suchmaschine übergeben werden. Der speller-Parameter wird für alle Textabfragetypen (keine Vektorabfragen) unterstützt.

Voraussetzungen

  • Ein Suchdienst auf der Basic-Dienstebene oder höher in einer beliebigen Region.

  • Ein vorhandener Suchindex mit Inhalt in einer unterstützten Sprache

  • Eine Abfrageanforderung, in der speller=lexicon und queryLanguage auf eine unterstützte Sprache festgelegt sind. Die Rechtschreibprüfung funktioniert für Zeichenfolgen, die im search-Parameter übergeben werden. Sie wird nicht für Filter, Fuzzysuche, Platzhaltersuche, reguläre Ausdrücke oder Vektorabfragen unterstützt.

Verwenden Sie einen Suchclient, der Vorschau-APIs für die Abfrageanforderung unterstützt. Sie können einen REST-Client oder Code verwenden, den Sie geändert haben, um REST-Aufrufe an die Vorschau-APIs zu senden. Sie können auch Betaversionen der Azure SDKs verwenden.

Clientbibliothek Versionen
REST-API Versionen 2020-06-30-Preview und höher. Die aktuelle Version ist 2023-10-01-Preview.
Azure SDK für .NET Version 11.5.0-beta.5
Azure SDK für Java Version 11.6.0-beta.5
Azure SDK für JavaScript Version 11.3.0-beta.8
Azure SDK für Python Version 11.4.0b3

Im folgenden Beispiel wird der integrierte Index „hotels-sample“ verwendet, um die Rechtschreibkorrektur für eine einfachen Textabfrage zu veranschaulichen. Ohne Rechtschreibkorrektur gibt die Abfrage keine Ergebnisse zurück. Bei der Korrektur gibt die Abfrage ein Ergebnis für die familienfreundliche Ferienunterkunft von Johnson zurück.

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
    "search": "famly acitvites",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "queryType": "simple",
    "select": "HotelId,HotelName,Description,Category,Tags",
    "count": true
}

Rechtschreibkorrektur mit Lucene-Abfragen vom Typ „full“ (vollständig)

Die Rechtschreibkorrektur erfolgt für einzelne Abfragebegriffe, die einer Textanalyse unterzogen werden, weshalb Sie den Parameter „speller“ bei einigen Lucene-Abfragen verwenden können, bei anderen jedoch nicht.

  • Nicht kompatible Abfrageformulare, die die Textanalyse umgehen, sind: Platzhalter, Regex, Fuzzy
  • Kompatible Abfrageformulare umfassen Folgendes: feldbezogene Suche, NEAR-Suche, Term Boosting

In diesem Beispiel wird die feldbezogene Suche über das Feld „Kategorie“ mit vollständiger Lucene-Syntax und einen falsch geschriebenen Abfragebegriff verwendet. Durch die Einbeziehung der Rechtschreibprüfung wird der Tippfehler in „Suiite“ korrigiert, und die Abfrage ist erfolgreich.

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
    "search": "Category:(Resort and Spa) OR Category:Suiite",
    "queryType": "full",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "select": "Category",
    "count": true
}

Rechtschreibkorrektur mit semantischer Rangfolge

Für diese Abfrage, bei der jeder Begriff mit Ausnahme von einem Tippfehler enthält, werden Rechtschreibkorrekturen vorgenommen, um relevante Ergebnisse zurückzugeben. Weitere Informationen finden Sie unter Konfigurieren der semantischen Rangfolge.

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview     
{
    "search": "hisotoric hotell wiht great restrant nad wiifi",
    "queryType": "semantic",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "searchFields": "HotelName,Tags,Description",
    "select": "HotelId,HotelName,Description,Category,Tags",
    "count": true
}

Unterstützte Sprachen

Gültige Werte für queryLanguage finden Sie in der folgenden Tabelle, die aus der Liste unterstützter Sprachen (REST-API-Referenz) kopiert wurde.

Sprache queryLanguage
Englisch [EN] EN, EN-US (Standard)
Spanisch [ES] ES, ES-ES (Standard)
Französisch [FR] FR, FR-FR (Standard)
Deutsch [DE] DE, DE-DE (Standard)
Niederländisch [NL] NL, NL-BE, NL-NL (Standard)

Hinweis

Während sich die Zuweisung einer semantischen Rangfolge in der öffentlichen Vorschau befand, wurde der Parameter queryLanguage auch für die semantische Rangfolge verwendet. Die Zuweisung einer semantischen Rangfolge ist jetzt sprachunabhängig.

Überlegungen zum Sprachanalysetool

Indizes, die nicht englischsprachige Inhalte enthalten, verwenden häufig Sprachanalysetools für nicht englischsprachige Felder, um die linguistischen Regeln der nativen Sprache anzuwenden.

Wenn Sie Inhalten, die auch einer Sprachanalyse unterzogen werden, eine Rechtschreibprüfung hinzufügen, können Sie bessere Ergebnisse erzielen, wenn Sie dieselbe Sprache für die Indizierung und die Abfrageverarbeitung verwenden. Wenn beispielsweise der Inhalt eines Felds mit dem Sprachanalysetool „fr.microsoft“ indiziert wurde, sollte für Abfragen und die Rechtschreibprüfung ein französisches Lexikon oder eine französische Sprachbibliothek verwendet werden.

Verwendung von Sprachbibliotheken in Azure KI Search:

  • Sprachanalysetools können während der Indizierung und Abfrageausführung aufgerufen werden und entsprechen entweder Apache Lucene (z. B. „de.lucene“) oder Microsoft („de.microsoft“).

  • Sprachlexika, die während der Rechtschreibprüfung aufgerufen werden, werden mit einem der Sprachcodes in der Tabelle der unterstützten Sprachen angegeben.

In einer Abfrageanforderung gilt der Wert, der queryLanguage zugewiesen ist, für speller.

Hinweis

Sprachkonsistenz über verschiedene Eigenschaftswerte hinweg ist nur dann ein Problem, wenn Sie Sprachanalysetools verwenden. Wenn Sie sprachunabhängige Analysetools verwenden (z. B. „keyword“, „simple“, „standard“, „stop“, „whitespace“ oder standardasciifolding.lucene), können Sie queryLanguage auf einen beliebigen Wert festlegen.

Inhalt in einem Suchindex kann zwar aus mehreren Sprachen zusammengesetzt sein, die Abfrageeingabe erfolgt jedoch höchstwahrscheinlich nur in einer Sprache. Die Suchmaschine prüft nicht die Kompatibilität von queryLanguage, des Sprachanalysetools und der Sprache, in der der Inhalt verfasst ist. Stellen Sie daher sicher, dass Sie Abfragen entsprechend einschränken, um falsche Ergebnisse zu vermeiden.

Nächste Schritte