De relevantie van resultaten verbeteren door scoreprofielen toe te voegen
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.
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.
Het eenvoudigste scoreprofiel definieert verschillende gewichten voor velden in een index. In het bovenstaande voorbeeld heeft de hotelindex een scoreprofiel met het veld Beschrijving als 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.
- Navigeer naar uw zoekservice.
- Selecteer Indexen en selecteer vervolgens de index waaraan u een scoreprofiel wilt toevoegen.
- Selecteer Scoreprofielen.
- Selecteer + Scoreprofiel toevoegen.
- Voer in profielnaam een unieke naam in.
- Als u het scoreprofiel wilt instellen als een standaardinstelling die moet worden toegepast op alle zoekopdrachten, selecteert u Instellen als standaardprofiel.
- Selecteer een veld in Veldnaam. Voer vervolgens voor Gewicht een gewichtswaarde in.
- Selecteer Opslaan.
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.