Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Note
Azure AI Keresés a Azure portálon, REST API-kon és Azure SDK-k keresztül érhető el. Emellett a Foundry IQ-t is támogatja, amely a vállalati tartalmakat újrafelhasználható, engedélytudatos tudásbázisokká alakítja át az Microsoft Foundry portálon található ügynökök számára.
A pontozási profilok a felhasználó által meghatározott feltételek alapján növelik vagy letiltják az egyező dokumentumok rangsorolását. Ebből a cikkből megtudhatja, hogyan adhat meg és rendelhet hozzá olyan pontozóprofilt, amely a megadott paraméterek alapján növeli a keresési pontszámot. Pontozási profilokat a következők alapján hozhat létre:
Súlyozott sztringmezők, ahol a növelés egy kijelölt mezőben található egyezés alapján történik. A "Tárgy" mezőben található egyezések például relevánsabbak, mint a "Leírás" mezőben található egyezések.
Függvények numerikus mezőkhöz, beleértve a dátumokat és a földrajzi koordinátákat. A numerikus tartalom esetén az alábbi jellemzők támogatása érhető el: távolság (földrajzi koordinátákra), frissesség (dátumidő mezőkre), hatókör és nagyságrend.
Függvények karakterlánc-gyűjteményekhez (címkék). A címkék függvény növeli a dokumentum keresési pontszámát, ha a gyűjtemény bármely elemét megfelelteti a lekérdezés.
(előzetes verzió) A különböző növelések összesítése. Egyetlen pontozási profilon belül több pontozási függvényt is megadhat, majd beállíthatja
"functionAggregation": "product". Az összes függvényben magas pontszámot elérő dokumentumok rangsorolásra kerülnek, míg azok, amelyek egy vagy több mezőben gyenge pontszámot kapnak, el lesznek tiltva.
Pontozási profilt hozzáadhat egy indexhez úgy, hogy szerkeszti annak JSON-definícióját az Azure Portalon, vagy programozott módon olyan API-kon keresztül, mint az Index REST létrehozása vagy frissítése , vagy bármely Azure SDK egyenértékű indexfrissítési API-ja. Nincsenek index-újraépítési követelmények, így olyan pontozóprofilt vehet fel, módosíthat vagy törölhet, amely nincs hatással az indexelt dokumentumokra.
A cikk végére pontozási profilokat hozhat létre és alkalmazhat a keresési relevancia növelése érdekében a mezősúly, a frissesség, a távolság vagy az egyéni feltételek alapján.
Prerequisites
Egy Azure-előfizetés. Hozzon létre egyet ingyen.
Azure AI-Search szolgáltatás. Hozzon létre egy szolgáltatást , vagy keressen egy meglévő szolgáltatást.
Keresési index szöveg- vagy numerikus (nem vektoriális) mezőkkel.
Engedélyek: Az indexek pontozási profilokkal való létrehozásához vagy frissítéséhez keresési indexadat-közreműködőre van szüksége. A pontozási profil használatával történő lekérdezéshez keresési index adatolvasóra van szükség. További információ: Csatlakozás szerepkörökkel.
SDK-telepítés (nem kötelező)::
- Piton:
pip install azure-search-documents - C#:
dotnet add package Azure.Search.Documents
- Piton:
Tip
Azonnali példakódok esetén ugorjon a Pontozási profil definíciója elemre.
Pontozási profilok szabályai
Pontozási profilokat használhat kulcsszókereséshez, vektorkereséshez, hibrid kereséshez és szemantikai rerankinghoz). A pontozási profilok azonban csak a nem vektormezőkre vonatkoznak, ezért győződjön meg arról, hogy az index rendelkezik olyan szöveg- vagy numerikus mezőkkel, amelyek növelhetők vagy súlyozhatók.
Egy indexen belül legfeljebb 100 pontozási profillal rendelkezhet (lásd a szolgáltatási korlátokat), de egy adott lekérdezésben egyszerre csak egy profilt adhat meg.
A szemantikai rangsorolást pontozási profilokkal használhatja, és a szemantikai rangsorolás után alkalmazhatja a pontozó profilt . Ellenkező esetben, ha több rangsorolási vagy relevanciafunkció van folyamatban, a szemantikai rangsorolás az utolsó lépés. A keresési pontozás működése szemlélteti a műveletek sorrendjét.
A további szabályok kifejezetten a függvényekre vonatkoznak.
Note
Nem ismeri a relevancia fogalmait? Látogasson el az Azure AI Keresés relevanciája és pontozása oldalra a háttérinformációkért. Ezt a videószegmenst a YouTube-on is megnézheti, hogy megtekintse a pontozási profilokat a BM25-ön alapuló rangsorolt eredményekhez.
Pontozási profil definíciója
A pontozási profil egy indexsémában van definiálva. Súlyozott mezőkből, függvényekből és paraméterekből áll.
Az alábbi definíció egy "geo" nevű egyszerű profilt mutat be. Ez a példa a hotelName mezőben található keresési kifejezéssel rendelkező találatokat emeli ki. A függvényt arra distance is használja, hogy előnyben részesítse az aktuális hely 10 kilométeres körzetében lévő eredményeket. Ha valaki a "fogadó" kifejezésre keres, és a "fogadó" a szálloda nevének része, a találatok között azok a dokumentumok jelennek meg, amelyek az aktuális hely 10 kilométeres körzetében lévő "fogadó" szállodát tartalmaznak.
"scoringProfiles": [
{
"name":"geo",
"text": {
"weights": {
"hotelName": 5
}
},
"functions": [
{
"type": "distance",
"boost": 5,
"fieldName": "location",
"interpolation": "logarithmic",
"distance": {
"referencePointParameter": "currentLocation",
"boostingDistance": 10
}
}
]
}
]
Referencia: scoringProfiles | scoringFunction | distance függvény
A pontozási profil használatához a lekérdezés úgy van kialakítva, hogy paramétert adjon meg scoringProfile a kérelemben. A REST API használata esetén a lekérdezések GET és POST kérésekkel vannak megadva. Az alábbi példában a "currentLocation" egyetlen kötőjel (-) elválasztójelével rendelkezik. Ezt követik a hosszúsági és szélességi koordináták, ahol a hosszúság negatív érték.
POST /indexes/hotels/docs/search?api-version=2026-04-01
{
"search": "inn",
"scoringProfile": "geo",
"scoringParameters": ["currentLocation--122.123,44.77233"]
}
Referencia: Keresési dokumentumok (REST) | pontozásiProfil paraméter | pontozásiParaméterek
A lekérdezési paramétereket, köztük scoringParameters, az A keresési dokumentumok (REST API) leírásban ismertetik.
További forgatókönyvekért tekintse meg a cikkben szereplő frissességre és távolságra , valamint a súlyozott szövegre és függvényekre vonatkozó példákat.
Lekérdezés pontozóprofillal az SDK-k használatával
import os
from azure.identity import DefaultAzureCredential
from azure.search.documents import SearchClient
# Set up the client
endpoint = os.environ["AZURE_SEARCH_ENDPOINT"]
index_name = "hotels"
credential = DefaultAzureCredential()
client = SearchClient(endpoint=endpoint, index_name=index_name, credential=credential)
# Execute search with scoring profile
results = client.search(
search_text="inn",
scoring_profile="geo",
scoring_parameters=["currentLocation--122.123,44.77233"],
select=["HotelName", "Description", "Rating"]
)
for result in results:
print(f"{result['HotelName']} (Score: {result['@search.score']})")
Hivatkozás: SearchClient.search | scoring_profile paraméter
Pontozási profil hozzáadása keresési indexhez
Kezdje egy indexdefinícióval. Meglévő indexek pontozási profiljait anélkül is hozzáadhatja és frissítheti, hogy újra kellene építenie. Az Index letöltése funkcióval egy meglévő index letölthető, és az Index létrehozása vagy frissítése kérelem használatával lehet egy verzió módosítását végrehajtani.
Illessze be a cikkben található
sablonba . Adjon meg egy nevet, amely megfelel az elnevezési konvencióknak.
Adja meg a kiemelési feltételeket. Egyetlen profil tartalmazhat szöveges súlyozott mezőket, függvényeket vagy mindkettőt.
Iteratív módon kell dolgoznia egy olyan adatkészlet használatával, amely segít az adott profil hatékonyságának bizonyításában vagy cáfolódásában.
A pontozási profilok definiálhatók az Azure Portalon az alábbi képernyőképen látható módon, vagy programozott módon REST API-kon vagy Azure SDK-kon keresztül, például a .NET- vagy Python-ügyfélkódtárak ScoringProfile osztályában.
Template
Ez a szakasz a pontozási profilok szintaxisát és sablonjait mutatja be. A tulajdonságok leírását a REST API-referencia ismerteti.
"scoringProfiles": [
{
"name": "name of scoring profile",
"text": (optional, only applies to searchable fields) {
"weights": {
"searchable_field_name": relative_weight_value (positive #'s),
...
}
},
"functions": (optional) [
{
"type": "magnitude | freshness | distance | tag",
"boost": # (positive number used as multiplier for raw score != 1),
"fieldName": "(...)",
"interpolation": "constant | linear (default) | quadratic | logarithmic",
"magnitude": {
"boostingRangeStart": #,
"boostingRangeEnd": #,
"constantBoostBeyondRange": true | false (default)
}
// ( - or -)
"freshness": {
"boostingDuration": "..." (value representing timespan over which boosting occurs)
}
// ( - or -)
"distance": {
"referencePointParameter": "...", (parameter to be passed in queries to use as reference location)
"boostingDistance": # (the distance in kilometers from the reference location where the boosting range ends)
}
// ( - or -)
"tag": {
"tagsParameter": "..."(parameter to be passed in queries to specify a list of tags to compare against target field)
}
}
],
"functionAggregation": (optional, applies only when functions are specified) "sum (default) | average | minimum | maximum | firstMatching"
}
],
"defaultScoringProfile": (optional) "...",
Szöveg súlyozott mezőinek használata
Szöveggel súlyozott mezőket használjon, ha a mezőkörnyezet fontos, a lekérdezések pedig sztringmezőket tartalmaznak searchable . Ha például egy lekérdezés tartalmazza a "repülőtér" kifejezést, a Leírás mező helyett a HotelName mezőben a "airport" kifejezést használhatja.
A súlyozott mezők egy mezőből és egy searchable szorzóként használt pozitív számból álló név-érték párok. Ha a HotelName eredeti mezőpontszáma 3, a mező összesített pontszáma 6 lesz, ami hozzájárul a szülődokumentum magasabb összesített pontszámához.
"scoringProfiles": [
{
"name": "boostSearchTerms",
"text": {
"weights": {
"HotelName": 2,
"Description": 5
}
}
}
]
Függvények használata
Függvényeket akkor használjon, ha az egyszerű relatív súlyok nem elegendőek vagy nem alkalmazhatók, ahogyan a távolság és a frissesség esetében is, amelyek numerikus adatokkal kapcsolatos számítások. Pontozási profilonként több függvényt is megadhat. Az Azure AI Keresésben használt EDM-adattípusokról további információt a Támogatott adattípusok című témakörben talál.
| Function | Description | Használati esetek |
|---|---|---|
| distance | Kiemelés közelség vagy földrajzi hely alapján. Ez a függvény csak mezőkkel Edm.GeographyPoint használható. |
"Keresés a közelben" forgatókönyvekhez használható. |
| freshness | Dátum/idő mező értékeinek növelése (Edm.DateTimeOffset).
Állítsa be a boostingDuration értéket egy olyan időtartamot megadva, amely alatt a kiemelés történik. |
Az újabb dátumok kiemeléséhez használja. Az olyan elemeket, mint például a naptáresemények, kiemelheti úgy, hogy azok időzítése közelebb essen a jelenhez, összehasonlítva azokkal az elemekkel, amelyek messzebb esnek a jövőben. A tartomány egyik vége az aktuális időponthoz van rögzítve. |
| magnitude | A nagyságrend a dokumentum értéke (például dátum vagy hely) és a referenciapont (például "most" vagy célhely) közötti számított távolság. Ez a pontozási függvény bemenete, és meghatározza, hogy a rendszer mennyi lökést alkalmaz. A rangsorolás módosítása egy numerikus mező értékeinek tartománya alapján. Az értéknek egész számnak vagy lebegőpontos számnak kell lennie. Az 1–4 csillagos értékelések esetében ez 1 lenne. Az 50% feletti margók esetében ez 50 lenne. Ez a függvény csak a Edm.Double és a Edm.Int mezőkkel használható. A nagyságfüggvény esetében megfordíthatja a tartományt magasról alacsonyra, ha az inverz mintázatot szeretné használni (például az alacsonyabb árú elemeket többre szeretné növelni, mint a magasabb árú elemeket). A 100 usd és 1 usd közötti ártartományt 100-nál és boostingRangeStart 1-nél kell beállítania boostingRangeEnd az alacsonyabb árú tételek kiemeléséhez. |
Akkor érdemes használni, ha nyereségmargó, minősítés, átkattintási szám, letöltések száma, legmagasabb ár, legalacsonyabb ár vagy letöltések száma alapján szeretné növelni. Ha két elem releváns, először a magasabb minősítésű elem jelenik meg. |
| címke | A keresési dokumentumok és a lekérdezési karakterláncok közös címkéinek fokozása. A címkék egy tagsParameter-ben vannak ellátva. Ez a függvény csak olyan típusú keresési mezőkkel használható, mint a Edm.StringCollection(Edm.String). |
Címkemezők használata esetén. Ha a listában egy adott címke maga is vesszővel tagolt lista, akkor a mezőn a vesszők eltávolításához lekérdezéskor a szöveg normalizálót használhatja (térképezze a vessző karaktert szóközre). Ez a megközelítés "simítja" a listát, hogy minden kifejezés egyetlen, hosszú vesszővel tagolt kifejezéssorozat legyen. |
A frissesség és a távolsági pontozás a magnitúdóalapú pontozás speciális esetei, ahol a rendszer automatikusan kiszámítja a magnitúdó értékét egy dátum/ földrajzi mező alapján.
Függvények használatának szabályai
- A függvények csak olyan mezőkre alkalmazhatók, amelyek a következőként
filterablevannak hozzárendelve: . - A függvény típusának ("frissesség", "magnitúdó", "távolság", "címke") kisbetűnek kell lennie.
- A függvények nem tartalmazhatnak null vagy üres értékeket.
- A függvények függvénydefiníciónként csak egyetlen mezővel rendelkezhetnek. Ha kétszer szeretné használni a magnitúdó értékét ugyanabban a profilban, adjon meg két definíciós nagyságrendet, egyet minden mezőhöz.
Interpolációk beállítása
Az interpolációk a frissesség és a távolság növeléséhez használt meredekség alakját állítják be. Mivel a pontozás magasból alacsonyba történik, a meredekség mindig csökken, de az interpoláció határozza meg a lefelé mutató görbe alakját, és azt, hogy milyen gyorsan változik a megerősítési pontszám a dokumentumok dátumának öregedésével.
| Interpolation | Description |
|---|---|
linear |
A maximális és minimális tartományon belüli elemeknél a kiemelést folyamatosan csökkenő mennyiségben alkalmazza a rendszer. Akkor ajánlott, ha fontos a fokozatos hanyatlás. A pontozási profil alapértelmezett interpolációja a lineáris. |
constant |
A kezdő és a záró tartományban lévő elemek esetében a rangsor eredményére állandó kiemelést alkalmazunk. Ezt akkor használja, ha kortól függetlenül fix büntetést szeretne. |
quadratic |
A kvadratikus függvény kezdetben lassabban csökken, majd felgyorsul, ahogy közeledik a tartomány végéhez, és sokkal nagyobb ütemben csökken. Ezt az interpolációt akkor használja, ha kifejezetten a legújabb dokumentumokat szeretné előnyben részesíteni, és élesen lefokozza a régebbieket. Ez az interpolációs beállítás nem engedélyezett a címke pontozó függvényben. |
logarithmic |
A logaritmikus eleinte nagyobb ütemben csökken, majd a tartományhoz közeledve sokkal kisebb időközönként csökken. Ajánlott, ha erősen előnyben részesíti a legutóbbi tartalmakat, de kevésbé érzékeny a dokumentumok elavulására. Ez az interpolációs beállítás nem engedélyezett a címke pontozó függvényben. |
A BoostingDuration beállítása a frissességi függvényhez
boostingDuration a függvény attribútuma freshness . Ezzel a beállítással beállíthat egy lejárati időszakot, amely után egy adott dokumentum kiemelése leáll. Ha például egy 10 napos promóciós időszakra szeretné növelni egy terméksort vagy márkát, akkor a 10 napos időszakot "P10D" értékként kell megadnia ezekhez a dokumentumokhoz.
boostingDuration XSD "dayTimeDuration" értékként kell formázni (az ISO 8601 időtartamérték korlátozott részhalmaza). Ennek mintája: "P[nD][T[nH][nM][nS]]".
Az alábbi táblázat több példát is tartalmaz.
| Duration | boostingDuration |
|---|---|
| 1 nap | "P1D" |
| 2 nap és 12 óra | "P2DT12H" |
| 15 perc | "PT15M" |
| 30 nap, 5 óra, 10 perc és 6,334 másodperc | "P30DT5H10M6.334S" |
| 1 év | "365D" |
További példákért lásd : XML-séma: Adattípusok (W3.org webhely).
Példa: fokozza a frissesség vagy a távolság
A boost görbe alakja (állandó, lineáris, logaritmikus, kvadratikus) befolyásolja, hogyan változnak az agresszív pontszámok a tartományon belül.
Ha a frissesség függvényt használja, és azt szeretné, hogy a növelés drámaibb hatást gyakoroljon az újabb dátumokra, válasszon kvadratikus interpolációt. A kvadratikus fokozza a közelmúltbeli dátumok és közeli helyszínek hatását, és a tartomány távoli végén lassabban gyengül. Ezzel szemben a logaritmikus görbék élesebben tolódnak el a túlsó végén.
Íme egy példa pontozási profilra, amely bemutatja, hogyan lehet növelni a pontszámot a frissesség alapján.
{
"name": "docs-index",
"fields": [
{ "name": "id", "type": "Edm.String", "key": true, "filterable": true },
{ "name": "title", "type": "Edm.String", "searchable": true },
{ "name": "content", "type": "Edm.String", "searchable": true },
{ "name": "lastUpdated", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true }
],
"scoringProfiles": [
{
"name": "freshnessBoost",
"text": {
"weights": {
"content": 1.0
}
},
"functions": [
{
"type": "freshness",
"fieldName": "lastUpdated",
"boost": 2.0,
"interpolation": "quadratic",
"parameters": {
"boostingDuration": "P365D"
}
}
]
}
]
}
- A
freshnessfüggvény kiszámítja a "most" éslastUpdatedközötti nagyságot. - A kvadratikus interpoláció pozitív lökése növeli a legújabb dátumok hatását, és gyorsan csökken a régebbiek esetében.
-
"boostingDuration": "P365D"Meghatározza a frissesség kiértékelésének időkeretét, például az elmúlt évben dátumozott dokumentumok növelését. -
"interpolation": "quadratic"azt jelenti, hogy a növelési hatás erősebb az aktuális dátumhoz közelebb eső dokumentumok esetében, és a régebbi dokumentumoknál élesebben csökken.
A következő példában a lineáris interpoláció állandó preferenciát biztosít a legújabb tartalmak számára a 30 napos ablakban. Növelje az erősítést, ha a jel más relevanciatényezőkön kell túljutnia.
{
"name": "freshness30_linear",
"functions": [
{
"type": "freshness",
"fieldName": "lastUpdated",
"boost": 3.0,
"interpolation": "linear",
"parameters": { "boostingDuration": "P30D" }
}
]
}
Referencia: frissességi függvény | növelésiIdőtartam
Példa: kiemelés súlyozott szöveg és függvények alapján
Tip
Nézze meg ezt a blogbejegyzést és jegyzetfüzetet a pontozási profilok és a dokumentumok vektoros, valamint generatív AI-forgatókönyvekben való használatának bemutatásához.
Az alábbi példa egy két pontozási profillal (boostGenre, newAndHighlyRated) rendelkező index sémáját mutatja be. Az indexhez tartozó lekérdezések, amelyek bármelyik profilt lekérdezési paraméterként tartalmazzák, a profilt használják az eredményhalmaz pontozására.
A boostGenre profil súlyozott szövegmezőket használ, és növeli az albumTitle, a műfaj és az artistName mezőkben található találatokat. A mezők megerősítése 1,5, 5 és 2-es értékkel történt. Miért van a műfaj sokkal jobban kiemelve, mint a többi? Ha a keresést kissé homogén adatokon végzik (ahogy a "műfaj" a musicstoreindexben), akkor nagyobb varianciára lehet szükség a relatív súlyokban. A musicstoreindexben például a "rock" műfajként és azonos kifejezésű műfaji leírásokban is megjelenik. Ha azt szeretné, hogy a műfaj meghaladja a műfaj leírását, a műfaji mező sokkal nagyobb relatív súlyt igényel.
{
"name": "musicstoreindex",
"fields": [
{ "name": "key", "type": "Edm.String", "key": true },
{ "name": "albumTitle", "type": "Edm.String" },
{ "name": "albumUrl", "type": "Edm.String", "filterable": false },
{ "name": "genre", "type": "Edm.String" },
{ "name": "genreDescription", "type": "Edm.String", "filterable": false },
{ "name": "artistName", "type": "Edm.String" },
{ "name": "orderableOnline", "type": "Edm.Boolean" },
{ "name": "rating", "type": "Edm.Int32" },
{ "name": "tags", "type": "Collection(Edm.String)" },
{ "name": "price", "type": "Edm.Double", "filterable": false },
{ "name": "margin", "type": "Edm.Int32", "retrievable": false },
{ "name": "inventory", "type": "Edm.Int32" },
{ "name": "lastUpdated", "type": "Edm.DateTimeOffset" }
],
"scoringProfiles": [
{
"name": "boostGenre",
"text": {
"weights": {
"albumTitle": 1.5,
"genre": 5,
"artistName": 2
}
}
},
{
"name": "newAndHighlyRated",
"functions": [
{
"type": "freshness",
"fieldName": "lastUpdated",
"boost": -10,
"interpolation": "quadratic",
"freshness": {
"boostingDuration": "P365D"
}
},
{
"type": "magnitude",
"fieldName": "rating",
"boost": 10,
"interpolation": "linear",
"magnitude": {
"boostingRangeStart": 1,
"boostingRangeEnd": 5,
"constantBoostBeyondRange": false
}
}
]
}
]
}
Példa: függvény-összesítés
Note
Ez a funkció jelenleg előzetes verzióban érhető el a latest preview REST API és a funkciót biztosító Azure SDK előzetes csomagokban.
Egyetlen pontozási profilon belül több pontozási függvényt is megadhat, majd beállíthatja "functionAggregation": "product". Az összes függvényben magas pontszámot elérő dokumentumok rangsorolásra kerülnek, míg azok, amelyek egy vagy több mezőben gyenge pontszámot kapnak, el lesznek tiltva.
Ebben a példában hozzon létre egy pontozási profilt, amely két növelési függvényt tartalmaz, amelyek rating és baseRate alapján növelnek, majd állítsa be a functionAggregation-t product-re.
### Create a new index
PUT {{url}}/indexes/hotels-scoring?api-version=2026-08-01-preview
Content-Type: application/json
api-key: {{key}}
{
"name": "hotels-scoring",
"fields": [
{"name": "HotelId", "type": "Edm.String", "key": true, "filterable": true, "facetable": true},
{"name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": true, "facetable": true},
{"name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": true, "analyzer": "en.lucene"},
{"name": "Category", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true},
{"name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "sortable": false, "facetable": true},
{"name": "ParkingIncluded", "type": "Edm.Boolean", "filterable": true, "sortable": true, "facetable": true},
{"name": "LastRenovationDate", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true, "facetable": true},
{"name": "Rating", "type": "Edm.Double", "filterable": true, "sortable": true, "facetable": true},
{"name": "BaseRate", "type": "Edm.Double", "filterable": true, "sortable": true, "facetable": true },
{"name": "Address", "type": "Edm.ComplexType",
"fields": [
{"name": "StreetAddress", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": true, "searchable": true},
{"name": "City", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true},
{"name": "StateProvince", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true},
{"name": "PostalCode", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true}
]
}
],
"scoringProfiles": [
{
"name": "productAggregationProfile",
"functions": [
{
"type": "magnitude",
"fieldName": "Rating",
"boost": 2.0,
"interpolation": "linear",
"magnitude": {
"boostingRangeStart": 1.0,
"boostingRangeEnd": 5.0,
"constantBoostBeyondRange": false
}
},
{
"type": "magnitude",
"fieldName": "BaseRate",
"boost": 1.5,
"interpolation": "linear",
"magnitude": {
"boostingRangeStart": 50.0,
"boostingRangeEnd": 400.0,
"constantBoostBeyondRange": false
}
}
],
"functionAggregation": "product"
}
],
"defaultScoringProfile": "productAggregationProfile"
}
Ez a következő kérés betölti az indexet kereshető tartalommal, amely teszteli a profilt.
### Upload documents to the index
POST {{url}}/indexes/hotels-scoring/docs/index?api-version=2026-08-01-preview
Content-Type: application/json
api-key: {{key}}
{
"value": [
{
"@search.action": "upload",
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Description": "This classic hotel is fully-refurbished and ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Times Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.",
"Category": "Boutique",
"Tags": [ "view", "air conditioning", "concierge" ],
"ParkingIncluded": false,
"LastRenovationDate": "2022-01-18T00:00:00Z",
"Rating": 3.60,
"BaseRate": 200.0,
"Address":
{
"StreetAddress": "677 5th Ave",
"City": "New York",
"StateProvince": "NY",
"PostalCode": "10022"
}
},
{
"@search.action": "upload",
"HotelId": "2",
"HotelName": "Old Century Hotel",
"Description": "The hotel is situated in a nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts. The hotel also regularly hosts events like wine tastings, beer dinners, and live music.",
"Category": "Boutique",
"Tags": [ "pool", "free wifi", "concierge" ],
"ParkingIncluded": false,
"LastRenovationDate": "2019-02-18T00:00:00Z",
"Rating": 3.60,
"BaseRate": 150.0,
"Address":
{
"StreetAddress": "140 University Town Center Dr",
"City": "Sarasota",
"StateProvince": "FL",
"PostalCode": "34243"
}
},
{
"@search.action": "upload",
"HotelId": "3",
"HotelName": "Gastronomic Landscape Hotel",
"Description": "The Gastronomic Landscape Hotel stands out for its culinary excellence under the management of William Dough, who advises on and oversees all of the Hotel’s restaurant services.",
"Category": "Suite",
"Tags": [ "restaurant", "bar", "continental breakfast" ],
"ParkingIncluded": true,
"LastRenovationDate": "2015-09-20T00:00:00Z",
"Rating": 4.80,
"BaseRate": 350.0,
"Address":
{
"StreetAddress": "3393 Peachtree Rd",
"City": "Atlanta",
"StateProvince": "GA",
"PostalCode": "30326"
}
},
{
"@search.action": "upload",
"HotelId": "4",
"HotelName": "Sublime Palace Hotel",
"Description": "Sublime Palace Hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Cliff is part of a lovingly restored 19th century resort, updated for every modern convenience.",
"Tags": [ "concierge", "view", "air conditioning" ],
"ParkingIncluded": true,
"LastRenovationDate": "2020-02-06T00:00:00Z",
"Rating": 4.60,
"BaseRate": 275.0,
"Address":
{
"StreetAddress": "7400 San Pedro Ave",
"City": "San Antonio",
"StateProvince": "TX",
"PostalCode": "78216"
}
}
]
}
Futtasson egy lekérdezést, amely a pontozási profilban szereplő feltételeket használja az eredmények magas értékelés és magas alapkamat alapján történő növeléséhez. A növelési pontszámok összesítése a mindkettő függvény esetében magas pontszámot adó eredmények további támogatása érdekében történik.
### Search with boost
POST {{url}}/indexes/hotels-scoring/docs/search?api-version=2026-08-01-preview
Content-Type: application/json
api-key: {{key}}
{
"search": "expensive and good hotels",
"count": true,
"select": "HotelId, HotelName, Description, Rating, BaseRate",
"scoringProfile": "productAggregationProfile"
}
A kérdésre adott legjobb válasz a "Gastronomic Landscape Hotel", melynek keresési pontszáma majdnem kétszer olyan magas, mint a következő legközelebbi találaté. Ez az adott szálloda mind a legmagasabb minősítéssel, mind a legmagasabb alapárral rendelkezik, így mindkét funkció összegződése elősegíti ezt a találatot az élre.
{
"@odata.count": 4,
"value": [
{
"@search.score": 1.0541908,
"HotelId": "3",
"HotelName": "Gastronomic Landscape Hotel",
"Description": "The Gastronomic Hotel stands out for its culinary excellence under the management of William Dough, who advises on and oversees all of the Hotel\u2019s restaurant services.",
"Rating": 4.8,
"BaseRate": 350.0
},
{
"@search.score": 0.53451097,
"HotelId": "2",
"HotelName": "Old Century Hotel",
"Description": "The hotel is situated in a nineteenth century plaza, which has been expanded and renovated to the highest architectural standards to create a modern, functional and first-class hotel in which art and unique historical elements coexist with the most modern comforts. The hotel also regularly hosts events like wine tastings, beer dinners, and live music.",
"Rating": 3.6,
"BaseRate": 150.0
},
{
"@search.score": 0.53185254,
"HotelId": "1",
"HotelName": "Stay-Kay City Hotel",
"Description": "This classic hotel is fully-refurbished and ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Times Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.",
"Rating": 3.6,
"BaseRate": 200.0
},
{
"@search.score": 0.44853577,
"HotelId": "4",
"HotelName": "Sublime Palace Hotel",
"Description": "Sublime Palace Hotel is located in the heart of the historic center of Sublime in an extremely vibrant and lively area within short walking distance to the sites and landmarks of the city and is surrounded by the extraordinary beauty of churches, buildings, shops and monuments. Sublime Cliff is part of a lovingly restored 19th century resort, updated for every modern convenience.",
"Rating": 4.6,
"BaseRate": 275.0
}
]
}
Finomhangolási tippek
Kezdje konzervatívan: növelés az 1,25 – 2,0 tartományban; csak akkor emelje, ha az aktualitás valóban döntő.
Ablakméretezés: A P30D használata friss tartalmakhoz, P90D/P180D közepesen friss tartalmakhoz, P365D a hosszú farokhoz.
Interpoláció választása:
- kvadratikus, ha erős leküldést szeretne a közelmúltba.
- Amikor állandó gradienst szeretne, használjon lineáris megoldást.
- logaritmikus, ha gyengéd beállításokat szeretne.
Összesítés: Ha több függvényt kombinál, az összeg a legegyszerűbb; váltson a maximális értékre, ha egyetlen jelet szeretne uralni
Pontozási profilok hibaelhárítása
A pontozási profilokkal kapcsolatos gyakori problémák diagnosztizálásához használja az alábbi táblázatot.
| Probléma | Lehetséges ok | Rezolúció |
|---|---|---|
| A pontozási profil nincs alkalmazva | A profilnév nincs megadva a lekérdezésben | Adjon hozzá scoringProfile paramétert a keresési kérelemhez a pontos profilnévvel. |
| Növekedési hatás nem figyelhető meg | A mező nincs megjelölve filterable |
A függvények csak a következőképpen attribútumolt mezőkre alkalmazhatók filterable. Frissítse az indexsémát. |
| Váratlan rangsorolási eredmények | Túl alacsony vagy túl magas a Boost érték | Kezdje az 1.25–2.0 tartomány kiemelési értékeivel, és állítsa be a tesztelés alapján. |
| A frissesség nem emeli ki a legutóbbi dokumentumokat |
boostingDuration túl rövid vagy helytelen formátum |
Ellenőrizze az időtartam formátumát (pl. "P30D" 30 napig), és szükség esetén bővítse ki az ablakot. |
| A távolság függvény nem működik | A mező nem Edm.GeographyPoint |
A távolság függvény csak mezőkkel Edm.GeographyPoint működik. |
| A címkefüggvény nem ad vissza kiemelést | A címkék nem egyeznek a lekérdezési értékekkel | Ellenőrizze, hogy a tagsParameter keresési kérelemben szereplő értékek megegyeznek-e scoringParameters. |
| A profil létezik, de a lekérdezés sikertelen | Érvénytelen mezőnév a profilban | Győződjön meg arról, hogy a pontozási profil összes mezőneve szerepel az indexsémában. |