Hinzufügen von Synonymen in Azure KI-Suche

In einem Suchdienst ordnet eine Synonymzuordnung entsprechende Begriffe zu, um den Bereich einer Abfrage zu erweitern, ohne dass der Benutzer den Begriff tatsächlich bereitstellen muss. Wenn zum Beispiel Hund, Hundeartige und Welpe zugeordnete Synonyme sind, werden bei Abfrage von Hundeartige Dokumente gefunden, die Hund enthalten. Sie können mehrere Synonymzuordnungen für verschiedene Sprachen erstellen, z. B. englische und französische Versionen, oder Lexika, wenn Ihr Inhalt technisches Jargon, Slang oder unbekannte Terminologie enthält.

Einige wichtige Punkte zu Synonymzuordnungen:

  • Eine Synonymzuordnung ist eine Ressource der obersten Ebene, die einmalig erstellt und von vielen Indizes verwendet werden kann.
  • Eine Synonymzuordnung gilt für Zeichenfolgenfelder.
  • Sie können jederzeit ohne Unterbrechung der Indizierung oder Abfragen eine Synonymzuordnung erstellen und zuweisen.
  • Ihre Dienstebene legt die Grenzwerte für die Anzahl der Synonymzuordnungen fest, die Sie erstellen können.
  • Der Suchdienst kann mehrere Synonymzuordnungen enthalten. Innerhalb eines Indexes kann eine Felddefinition aber nur eine Synonymzuordnung zugewiesen sein.

Erstellen einer Synonymzuordnung

Eine Synonymzuordnung besteht aus Name, Format und Regeln, die als Synonymzuordnungseinträge fungieren. Das einzige unterstützte Format ist solr, und das solr-Format bestimmt die Regelkonstruktion.

Erstellen Sie eine Synonymzuordnung programmgesteuert. Das Portal unterstützt keine Synonymzuordnungsdefinitionen.

Um eine Synonymzuordnung zu erstellen, verwenden Sie Synonymzuordnung erstellen (REST-API).

POST /synonymmaps?api-version=2024-07-01
{
    "name": "geo-synonyms",
    "format": "solr",
    "synonyms": "
        USA, United States, United States of America\n
        Washington, Wash., WA => WA\n"
}

Definieren von Regeln

Zuordnungsregeln befolgen die Open Source-Synonymfilterspezifikation von Apache Solr, die im folgenden Dokument beschrieben ist: SynonymGraphFilter. Das Format solr unterstützt zwei Arten von Regeln:

  • Äquivalenz (wobei Begriffe in der Abfrage gleichwertige Alternativen sind)

  • Explizite Zuordnungen (wobei Begriffe einem expliziten Begriff zugeordnet werden)

Jede Regel wird durch das Zeilenvorschubzeichen (\n) von anderen Regeln getrennt. Sie können bis zu 5.000 Regeln pro Synonymzuordnung in einem kostenlosen Dienst und 20.000 Regeln pro Zuordnung in anderen Tarifen definieren. Jede Regel kann bis zu 20 Erweiterungen oder Elemente in einer Regel aufweisen. Weitere Informationen finden Sie unter Synonymeinschränkungen.

Abfrageparser wandeln alle Begriffe in Großbuchstaben oder gemischter Groß-/Kleinschreibung in Kleinbuchstaben um. Wenn Sie Sonderzeichen in der Zeichenfolge beibehalten möchten, wie z. B. ein Komma oder einen Gedankenstrich, fügen Sie beim Erstellen der Synonymzuordnung die entsprechenden Escape-Zeichen hinzu.

Äquivalenzregeln

Regeln für äquivalente Begriffe innerhalb derselben Regel werden durch Kommas getrennt. Im ersten Beispiel wird eine Abfrage zu USA auf USA ODER "Vereinigte Staaten" ODER "Vereinigte Staaten von Amerika" erweitert. Beachten Sie, dass, zum Abgleich mit einem Ausdruck, die Abfrage selbst eine Abfrage mit einem in Anführungszeichen eingeschlossene Ausdruck sein muss.

Im Äquivalenzfall erweitert eine Abfrage für Hund die Abfrage auch um Welpe und Hundeartige.

{
"format": "solr",
"synonyms": "
    USA, United States, United States of America\n
    dog, puppy, canine\n
    coffee, latte, cup of joe, java\n"
}

Explizite Zuordnung

Regeln für eine explizite Zuordnung werden durch einen Pfeil => gekennzeichnet. Eine Begriffsfolge (sofern angegeben) einer Suchabfrage, die den linken Teil von => vergleicht, wird zum Zeitpunkt der Abfrage durch die Alternativen auf der rechten Seite ersetzt.

Im expliziten Fall wird eine Abfrage für Washington, Wash oder WA als WAumgeschrieben, und das Abfragemodul sucht nur nach Übereinstimmungen für den Begriff WA. Die explizite Zuordnung gilt nur für die angegebenen Richtung und schreibt in diesem Fall die Abfrage WA nicht in Washington um.

{
"format": "solr",
"synonyms": "
    Washington, Wash., WA => WA\n
    California, Calif., CA => CA\n"
}

Verwenden von Escapezeichen für Sonderzeichen

Synonyme werden während der Abfrageverarbeitung wie jeder andere Suchbegriff analysiert, was bedeutet, dass die Regeln für reservierte Zeichen und Sonderzeichen auch für die Begriffe in Ihrer Synonymzuordnung gelten. Die Liste der Zeichen, die die Verwendung von Escapezeichen erfordern, unterscheidet sich zwischen der einfachen Syntax und der vollständigen Syntax:

Um Zeichen beizubehalten, die das Standardanalysetool verwirft, ersetzen Sie es durch ein Analysetool, das sie beibehält. Zu den Optionen gehören Microsoft Natural Language Analyzer (Analysetool für natürliche Sprache), bei dem Wörter mit Bindestrichen beibehalten werden, oder ein benutzerdefiniertes Analysetool für komplexere Muster. Weitere Informationen finden Sie unter Teilausdrücke, Muster und Sonderzeichen.

Nachfolgend sehen Sie ein Beispiel für das Versehen eines Zeichens mit einem Backslash als Escapezeichen.

{
    "format": "solr",
    "synonyms": "WA\, USA, WA, Washington\n"
}

Da der umgekehrte Schrägstrich selbst ein Sonderzeichen in anderen Sprachen wie JSON und C# ist, müssen Sie ihn wahrscheinlich mit einem doppelten Escapezeichen versehen. Hier ist ein Beispiel in JSON:

{
    "format":"solr",
    "synonyms": "WA\\, USA, WA, Washington"
}

Verwalten von Synonymzuordnungen

Sie können eine Synonymzuordnung aktualisieren, ohne die Abfrage- und Indizierungsworkloads zu unterbrechen. Sobald Sie eine Synonymzuordnung jedoch zu einem Feld hinzugefügt haben und sie dann löschen, schlägt jede Abfrage, die die betreffenden Felder enthält, mit einem 404-Fehler fehl.

Das Erstellen, Aktualisieren und Löschen einer Synonymzuordnung wird immer für das gesamte Dokument ausgeführt. Teile der Synonymzuordnung können nicht inkrementell aktualisiert oder gelöscht werden. Selbst das Aktualisieren einer einzelnen Regel erfordert das erneute Laden.

Zuweisen von Synonymen zu Feldern

Nachdem Sie die Synonymzuordnung erstellt haben, weisen Sie sie einem Feld in Ihrem Index zu. Weisen Sie Synonymzuordnungen programmgesteuert zu. Das Portal unterstützt keine Feldzuordnungen von Synonymzuordnungen.

  • Ein Feld muss vom Typ Edm.String oder Collection(Edm.String) sein.
  • Für ein Feld muss "searchable":true festgelegt sein.
  • Ein Feld kann nur eine Synonymzuordnung aufweisen.

Wenn die Synonymzuordnung im Suchdienst vorhanden ist, wird sie für die nächste Abfrage verwendet, ohne dass eine erneute Indizierung oder eine Neuerstellung erforderlich ist.

Verwenden Sie Index erstellen oder aktualisieren (REST-API), um eine Felddefinition zu ändern.

PUT /indexes?api-version=2024-07-01
{
    "name":"hotels-sample-index",
    "fields":[
        {
            "name":"description",
            "type":"Edm.String",
            "searchable":true,
            "synonymMaps":[
            "en-synonyms"
            ]
        },
        {
            "name":"description_fr",
            "type":"Edm.String",
            "searchable":true,
            "analyzer":"fr.microsoft",
            "synonymMaps":[
            "fr-synonyms"
            ]
        }
    ]
}

Abfrage nach äquivalenten oder zugeordneten Feldern

Eine Synonymfeldzuweisung ändert nicht, wie Sie Abfragen schreiben. Nach der Zuweisung der Synonymzuordnung besteht der einzige Unterschied darin, dass das Suchmodul bei Vorhandensein eines Abfragebegriffs in der Synonymzuordnung den Begriff oder Ausdruck je nach Regel entweder erweitert oder umformuliert.

Verwendung von Synonymen bei der Abfrageausführung

Synonyme sind eine Abfrageerweiterungstechnik, die den Inhalt eines Indexes mit äquivalenten Begriffen ergänzt, aber nur für Felder, die über eine Synonymzuordnung verfügen. Wenn eine feldbezogene Abfrage ein für Synonyme aktiviertes Feld ausschließt, werden keine Übereinstimmungen aus der Synonymzuordnung angezeigt.

Für Felder, die für Synonyme aktiviert sind, unterliegen Synonyme derselben Textanalyse wie das zugehörige Feld. Wenn ein Feld z. B. mit dem standardmäßigen Lucene-Analysetool analysiert wird, unterliegen synonyme Begriffe zur Abfragezeit ebenfalls dem standardmäßigen Lucene-Analysetool. Wenn Sie Interpunktionszeichen wie Punkte oder Bindestriche im synonymen Begriff beibehalten möchten, wenden Sie ein Analysetool an, das den Inhalt beibehält.

Intern ändert die Synonymfunktion die ursprüngliche Abfrage mithilfe von Synonymen mit dem OR-Operator. Aus diesem Grund werden der ursprüngliche Begriff und Synonyme von der Treffermarkierung und von Bewertungsprofilen als gleichwertig behandelt.

Synonyme gelten nur für Freitextabfragen und werden nicht für Filter, Facetten, AutoVervollständigen oder Vorschläge unterstützt. AutoVervollständigen und Vorschläge basieren nur auf dem ursprünglichen Begriff. Synonymübereinstimmungen werden in der Antwort nicht angezeigt.

Wenn Sie über einen vorhandenen Index in einer Entwicklungsumgebung (nicht Produktionsumgebung) verfügen, experimentieren Sie mit einem kleinen Wörterbuch, um zu prüfen, wie sich das Hinzufügen von Synonymen auf die Suche auswirkt, einschließlich der Auswirkungen auf Bewertungsprofile, Treffermarkierungen und Vorschläge.

Platzhaltersuchen

Die Synonymerweiterungen gelten nicht für Platzhaltersuchbegriffe. Präfix-, Fuzzy- und Regex-Begriffe werden nicht erweitert.

Wenn Sie eine einzelne Abfrage, die eine Synonymerweiterung sowie Platzhalter-, Regex- und Fuzzysuche umfasst, durchführen möchten, können Sie die Abfragen mit der OR-Syntax kombinieren. Um beispielsweise Synonyme mit Platzhaltern für eine einfache Abfragesyntax zu kombinieren, lautet der Begriff <query> | <query>*.

Nächster Schritt