Dela via


Lägga till semantisk rangordning i frågor i Azure AI Search

Den här artikeln beskriver hur du anropar den semantiska rankern i frågor. Du kan använda semantisk rangordning för textfrågor, hybridfrågor och vektorfrågor om dina sökdokument innehåller strängfält och vektorfrågan har en textrepresentation.

Semantisk rankning itererar över en inledande resultatuppsättning och tillämpar en L2-rankningsmetod som främjar de mest semantiskt relevanta resultaten högst upp i stacken. Du kan också få semantiska bildtexter, med markeringar över de mest relevanta termerna och fraserna och semantiska svar.

Förutsättningar

Kommentar

Bildtexter och svar extraheras ordagrant från text i sökdokumentet. Det semantiska undersystemet använder maskinläsningsförståelse för att identifiera innehåll som har egenskaperna för en bildtext eller ett svar, men skriver inte nya meningar eller fraser. Därför fungerar innehåll som innehåller förklaringar eller definitioner bäst för semantisk rangordning. Om du vill ha chattliknande interaktion med genererade svar kan du läsa Hämtning av utökad generation (RAG).

Välj en klient

Du kan använda något av följande verktyg och SDK:er för att skapa en fråga som använder semantisk rangordning:

Undvik funktioner som kringgår relevansbedömning

Några frågefunktioner kringgår relevansbedömning, vilket gör dem inkompatibla med semantisk rangordning. Om din frågelogik innehåller följande funktioner kan du inte semantiskt rangordna dina resultat:

  • En fråga med search=* eller en tom söksträng, till exempel ren filterfråga, fungerar inte eftersom det inte finns något att mäta semantisk relevans mot och därför är sökpoängen noll. Frågan måste ange termer eller fraser som kan utvärderas under bearbetningen.

  • Sortering (orderBy-satser) på specifika fält åsidosätter sökresultat och en semantisk poäng. Med tanke på att den semantiska poängen ska tillhandahålla rangordningen resulterar det i ett HTTP 400-fel om du tillämpar semantisk rangordning över ordnade resultat genom att lägga till en orderby-sats.

Konfigurera frågan

I det här steget lägger du till parametrar i frågebegäran. För att lyckas bör frågan vara fulltextsökning (med parametern search för att skicka in en sträng) och indexet ska innehålla textfält med omfattande semantiskt innehåll och en semantisk konfiguration.

Sökutforskaren innehåller alternativ för semantisk rangordning.

  1. Logga in på Azure-portalen.

  2. Öppna ett sökindex och välj Sökutforskaren.

  3. Välj Frågealternativ. Om du redan har definierat en semantisk konfiguration är den markerad som standard. Om du inte har någon skapar du en semantisk konfiguration för ditt index.

    Skärmbild som visar frågealternativ i Sökutforskaren.

  4. Ange en fråga, till exempel "historiskt hotell med god mat", och välj Sök.

  5. Du kan också välja JSON-vy och klistra in definitioner i frågeredigeraren:

    Skärmbild som visar JSON-frågesyntax i Azure-portalen.

    Här är en JSON-text som du kan klistra in i vyn:

     {
         "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
     }
    

Utvärdera svaret

Endast de 50 bästa matchningarna från de första resultaten kan rangordnas semantiskt. Precis som med alla frågor består ett svar av alla fält som markerats som hämtningsbara, eller bara de fält som anges i parametern Select. Ett svar innehåller den ursprungliga relevanspoängen och kan även innehålla ett antal eller batchbaserade resultat, beroende på hur du formulerade begäran.

I semantisk rangordning har svaret fler element: en ny semantiskt rangordnad relevanspoäng, en valfri bildtext i oformaterad text och med markeringar och ett valfritt svar. Om dina resultat inte innehåller dessa extra element kan frågan vara felkonfigurerad. Som ett första steg mot att felsöka problemet kontrollerar du den semantiska konfigurationen för att se till att den anges i både indexdefinitionen och frågan.

I en klientapp kan du strukturera söksidan så att den innehåller en beskrivning som matchningsbeskrivning i stället för hela innehållet i ett visst fält. Den här metoden är användbar när enskilda fält är för kompakta för sökresultatsidan.

Svaret för exempelfrågan ovan returnerar följande matchning som det översta valet. Bildtexter returneras eftersom egenskapen "captions" har angetts, med oformaterad text och markerade versioner. Svar utelämnas från exemplet eftersom det inte gick att fastställa något för den här frågan och corpus.

"@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"
    },
  ...
]

Förväntade arbetsbelastningar

För semantisk rangordning bör du förvänta dig att en söktjänst stöder upp till 10 samtidiga frågor per replik.

Tjänsten begränsar semantiska rangordningsbegäranden om volymerna är för höga. Ett felmeddelande som innehåller dessa fraser anger att tjänsten har kapacitet för semantisk rangordning:

Error in search query: Operation returned an invalid status 'Partial Content'`
@search.semanticPartialResponseReason`
CapacityOverloaded

Om du förväntar dig konsekventa dataflödeskrav nära, på eller högre än den här nivån kan du skicka in ett supportärende så att vi kan etablera för din arbetsbelastning.

Nästa steg

Semantisk rangordning kan användas i hybridfrågor som kombinerar nyckelordssökning och vektorsökning i en enda begäran och ett enhetligt svar.