De relevantie van resultaten verbeteren door scoreprofielen toe te voegen

Voltooid

Azure AI Search maakt gebruik van het CLASSIFICATIE-algoritme BM25-overeenkomsten. Het algoritme beoordeelt documenten op basis van de gebruikte zoektermen.

Hier ziet u hoe u scoreprofielen toevoegt om de scores voor documenten te wijzigen op basis van uw eigen criteria.

Hoe zoekscores worden berekend

Scoren is de laatste fase van het verwerken van een zoekquery.

A diagram showing the score phase of search highlighted.

De zoekmachine beoordeelt de documenten die zijn geretourneerd uit de eerste drie fasen. De score is een functie van het aantal keren dat geïdentificeerde zoektermen worden weergegeven in een document, de grootte van het document en de zeldzaamheid van elk van de termen. Standaard worden de zoekresultaten gerangschikt op basis van hun zoekscore, hoogste eerst. Als twee documenten een identieke zoekscore hebben, kunt u de koppeling verbreken door een $orderby component toe te voegen.

De score voor relevantere documenten verbeteren

Omdat de standaardscore werkt op basis van de frequentie van termen en zeldzaamheid, retourneert de uiteindelijke berekende score mogelijk niet de hoogste score voor het meest relevante document. Elke gegevensset is anders, dus met AI Search kunt u een documentscore beïnvloeden met behulp van scoreprofielen.

A diagram showing a weighted field score.

Het eenvoudigste scoreprofiel definieert verschillende gewichten voor velden in een index. In het bovenstaande voorbeeld heeft de hotelindex een scoreprofiel met het veld Beschrijving vijf keer relevanter dan gegevens in de velden Locatie of Ruimten. Het veld Categorie is twee keer zo relevant als de HotelName.

Het scoreprofiel kan ook functies bevatten, bijvoorbeeld afstand of versheid. Functies bieden meer controle dan eenvoudige weging, u kunt bijvoorbeeld de boostduur definiëren die wordt toegepast op nieuwere documenten voordat ze hetzelfde scoren als oudere documenten.

De kracht van scoreprofielen betekent dat u in plaats van een specifieke term in een zoekaanvraag een scoreprofiel kunt toepassen op een index, zodat velden automatisch worden verhoogd voor alle query's.

Een gewogen scoreprofiel toevoegen

U kunt maximaal 100 scoreprofielen toevoegen aan een zoekindex. De eenvoudigste manier om een scoreprofiel te maken, is in Azure Portal.

  1. Navigeer naar uw zoekservice.
  2. Selecteer Indexen en selecteer vervolgens de index waaraan u een scoreprofiel wilt toevoegen.
  3. Selecteer Scoreprofielen.
  4. Selecteer + Scoreprofiel toevoegen.
  5. Voer in profielnaam een unieke naam in.
  6. Als u het scoreprofiel wilt instellen als een standaardinstelling die moet worden toegepast op alle zoekopdrachten, selecteert u Instellen als standaardprofiel.
  7. Selecteer een veld in Veldnaam. Voer vervolgens voor Gewicht een gewichtswaarde in.
  8. Selecteer Opslaan.

A screenshot of the Azure portal scoring profiles pane.

In het bovenstaande voorbeeld is het boost-category scoreprofiel toegevoegd aan het hotels-sample-index. De categorie heeft een gewicht van vijf.

Het profiel is ook ingesteld als het standaardprofiel. Vervolgens kunt u deze zoekquery gebruiken:

search=luxury AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

De resultaten komen nu overeen met dezelfde query met een term die is verbeterd:

search=(Description:luxury OR Category:luxury^5) AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

U kunt bepalen welk scoreprofiel wordt toegepast op een zoekquery door de &scoringProfile=PROFILE NAME parameter toe te voegen.

Scoreprofielen kunnen ook programmatisch worden toegevoegd met behulp van de Update Index REST API of in Azure SDK's, zoals de ScoringProfile-klasse in de Azure SDK voor .NET.

Functies gebruiken in een scoreprofiel

De functies die beschikbaar zijn om toe te voegen aan een scoreprofiel zijn:

Functie Beschrijving
Magnitude Scores wijzigen op basis van een bereik van waarden voor een numeriek veld
Nieuwheid Scores wijzigen op basis van de nieuwheid van documenten zoals opgegeven door een DateTimeOffset-veld
Afstand Scores wijzigen op basis van de afstand tussen een referentielocatie en een geografiepuntveld
Tag Scores wijzigen op basis van algemene tagwaarden in documenten en query's

Als u bijvoorbeeld de hotelindex gebruikt, kan de waardefunctie worden toegepast op het veld Waardering. Azure Portal begeleidt u bij het voltooien van de parameters voor elke functie.

A screenshot showing the parameters for the magnitude function.