Dela via


Skapa en semantisk fråga i Azure AI Search

I den här artikeln får du lära dig hur du anropar en semantisk rangordning över en resultatuppsättning och främjar de mest semantiskt relevanta resultaten högst upp i stacken. Du kan också få semantiska bildtext, med höjdpunkter ö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

Välj en sökklient som stöder semantisk rangordning. Här följer några alternativ:

Undvik funktioner som kringgår relevansbedömning

Flera frågefunktioner i Azure AI Search kringgår relevansbedömning eller är annars inte kompatibla 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. Frågan måste innehålla termer eller fraser som kan utvärderas under bearbetningen.

  • En fråga som består av den fullständiga Lucene-syntaxen (queryType=full) är inte kompatibel med semantisk rangordning (queryType=semantic). Den semantiska modellen stöder inte den fullständiga Lucene-syntaxen.

  • 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.

    Screenshot showing query options in Search explorer.

  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:

    Screenshot showing JSON query syntax in the Azure portal.

    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 bildtext som beskrivning av matchningen 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. Undertexter returneras eftersom egenskapen "bildtext s" 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"
    },
  ...
]

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.