Erstellen einer Semantikabfrage in Azure KI-Suche

In diesem Artikel erfahren Sie, wie Sie eine semantische Rangfolge für ein Resultset aufrufen und dabei die semantisch relevantesten Ergebnisse an den Anfang des Stapels heraufstufen. Sie können auch semantische Beschriftungen mit Hervorhebungen der relevantesten Begriffe und Ausdrücke sowie semantische Antworten abrufen.

Voraussetzungen

Hinweis

Sowohl Beschriftungen als auch Antworten werden wörtlich aus dem Text im Suchdokument extrahiert. Das semantische Subsystem nutzt maschinelles Leseverständnis, um Inhalte mit den Merkmalen einer Beschriftung oder Antwort zu erkennen, erstellt aber keine neuen Sätze oder Ausdrücke. Aus diesem Grund funktionieren Inhalte, die Erläuterungen oder Definitionen enthalten, am besten für die semantische Rangfolge. Wenn Sie eine Interaktion im Chatstil mit generierten Antworten benötigen, lesen Sie Retrieval Augmented Generation (RAG).

Auswählen eines Clients

Wählen Sie einen Suchclient aus, der die semantische Rangfolge unterstützt. Hier einige Optionen:

Vermeiden von Features, die die Relevanzbewertung umgehen

Mehrere Abfragefunktionen in Azure KI Search umgehen die Relevanzbewertung oder sind anderweitig nicht mit der semantischen Rangfolge kompatibel. Wenn Ihre Abfragelogik die folgenden Features enthält, können Sie die semantische Rangfolge für Ihre Ergebnisse nicht verwenden:

  • Eine Abfrage mit search=* oder mit einer leeren Suchzeichenfolge (z. B. eine reine Filterabfrage) funktioniert nicht, da keine semantische Relevanz gemessen werden kann. Die Abfrage muss Begriffe oder Ausdrücke bereitstellen, die während der Verarbeitung bewertet werden können.

  • Eine Abfrage, die in der vollständigen Lucene-Syntax (queryType=full) erstellt wurde, ist mit der semantischen Rangfolge (queryType=semantic) nicht kompatibel. Die vollständige Lucene-Syntax wird vom semantischen Modell nicht unterstützt.

  • Eine Sortierung nach bestimmten Feldern (durch orderby-Klauseln) setzt Suchbewertungen und eine semantische Bewertung außer Kraft. Da die semantische Bewertung die Rangfolge bereitstellen soll, führt das Hinzufügen einer orderby-Klausel zu einem HTTP 400-Fehler, wenn Sie die semantische Rangfolge auf sortierte Ergebnisse anwenden.

Einrichten der Abfrage

Fügen Sie der Abfrageanforderung in diesem Schritt Parameter hinzu. Für eine erfolgreiche Ausführung muss Ihre Abfrage eine Volltextsuche sein (mit Übergabe einer Zeichenfolge unter Verwendung des Parameters search), und der Index muss Textfelder mit umfangreichen semantischen Inhalten sowie eine semantische Konfiguration enthalten.

Der Suchexplorer enthält Optionen für die semantische Rangfolge.

  1. Melden Sie sich beim Azure-Portal an.

  2. Öffnen Sie einen Suchindex, und wählen Sie Suchexplorer aus.

  3. Wählen Sie Abfrageoptionen aus. Wenn Sie bereits eine semantische Konfiguration definiert haben, ist sie standardmäßig ausgewählt. Wenn Sie keine haben, erstellen Sie eine semantische Konfiguration für Ihren Index.

    Screenshot showing query options in Search explorer.

  4. Geben Sie eine Abfrage ein, z. B. „historic hotel with good food“, und wählen Sie Suchen aus.

  5. Alternativ können Sie JSON-Ansicht auswählen und Definitionen in den Abfrage-Editor einfügen:

    Screenshot showing JSON query syntax in the Azure portal.

    Das Folgende ist ein JSON-Text, den Sie in die Ansicht einfügen können:

     {
         "queryType": "semantic",
         "search": "historic hotel with good food",
         "semanticConfiguration": "my-semantic-config",
         "answers": "extractive|count-3",
         "captions": "extractive|highlight-true",
         "highlightPreTag": "<strong>",
         "highlightPostTag": "</strong>",
         "select": "HotelId,HotelName,Description,Category",
         "count": true
     }
    

Auswertung der Antwort

Nur die 50 besten Treffer aus den anfänglichen Ergebnissen können in eine semantische Rangfolge gebracht werden. Eine Antwort umfasst genau wie bei anderen Abfragen entweder alle als abrufbar markierten Felder oder nur Felder, die im Auswahlparameter aufgeführt sind. Eine Antwort enthält die ursprüngliche Relevanzbewertung und eventuell auch eine Anzahl oder Batchergebnisse, je nachdem, wie Sie die Anforderung formuliert haben.

Bei der semantischen Rangfolge enthält die Antwort mehr Elemente: eine neue Relevanzbewertung mit semantischer Rangfolge, eine optionale Beschriftung im Nur-Text-Format und mit Hervorhebungen sowie eine optionale Antwort. Wenn Ihre Ergebnisse diese zusätzlichen Elemente nicht enthalten, ist Ihre Abfrage möglicherweise falsch konfiguriert. Überprüfen Sie als ersten Schritt zur Problembehandlung die semantische Konfiguration, um sicherzustellen, dass sie sowohl in der Indexdefinition als auch in der Abfrage angegeben ist.

In einer Client-App können Sie die Suchseite so strukturieren, dass sie eine Beschriftung als Beschreibung der Übereinstimmung und nicht den gesamten Inhalt eines bestimmten Felds enthält. Dieser Ansatz ist hilfreich, wenn einzelne Felder für die Seite mit den Suchergebnissen zu umfangreich sind.

Die Antwort auf die oben stehende Beispielabfrage gibt den folgenden Treffer als beste Übereinstimmung zurück. Beschriftungen werden im Nur-Text-Format und mit Hervorhebungen zurückgegeben, da die captions-Eigenschaft festgelegt wurde. Antworten werden im Beispiel ausgelassen, da für diese Abfrage und den Korpus keine Antworten bestimmt werden konnten.

"@odata.count": 35,
"@search.answers": [],
"value": [
    {
        "@search.score": 1.8810667,
        "@search.rerankerScore": 1.1446577133610845,
        "@search.captions": [
            {
                "text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
                "highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
            }
        ],
        "HotelName": "Oceanside Resort",
        "Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
        "Category": "Luxury"
    },
  ...
]

Nächste Schritte

Die semantische Rangfolge kann in Hybridabfragen verwendet werden, die die Schlüsselwortsuche und die Vektorsuche in einer einzelnen Anforderung und einer einheitlichen Antwort kombinieren.