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.
Megjegyzés
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.
Important
Az (előzetes verzióban) megjelölt funkciókra, képességekre vagy tulajdonságokra nem vonatkozik szolgáltatási szintű szerződés, nem ajánlott éles számítási feladatokhoz, és az általános elérhetővé válásuk előtt változhatnak vagy korlátozhatók. Az Azure AI Keresés előzetes verziójú kifejezések az összes előzetes verziós funkcióra vonatkoznak, függetlenül attól, hogy önálló vagy egy általánosan elérhető funkció része.
A hibrid keresés egyetlen keresési kérelemben egyesíti a szöveget (kulcsszó) és a vektoros lekérdezéseket. Mindkét lekérdezés párhuzamosan fut. Az eredmények egyesítése és átrendezése új keresési pontszámokkal történik, a Kölcsönös rangsor fúzió (RRF) használatával egységes eredményhalmazt ad vissza. A szemantikai rangsorolású hibrid lekérdezések sok esetben teljesítménymutató-tesztekenként a legrelevánsabb eredményeket adnak vissza.
Ebből a cikkből megtudhatja, hogyan:
- Alapszintű hibrid kérés beállítása
- Paraméterek és szűrők hozzáadása
- Relevancia javítása szemantikai rangsorolással vagy vektorsúlyokkal
- Lekérdezési viselkedés optimalizálása bemenetek vezérlésével (
maxTextRecallSize)
A cikk végére olyan hibrid lekérdezéseket hajthat végre, amelyek a kulcsszó- és vektorkeresést kombinálják az opcionális szemantikai rangsorolással.
Előfeltételek
Egy Azure előfizetés. Hozzon létre egyet ingyen.
Egy Azure AI Keresés szolgáltatás. Szolgáltatás létrehozása vagy meglévő szolgáltatás létrehozása.
Vektort és nem adatvektormezőket tartalmazó
searchablekeresési index. Javasoljuk, hogy az Adatok importálása varázslóval gyorsan hozzon létre indexet. Ellenkező esetben lásd: Index létrehozása és Vektormezők hozzáadása keresési indexhez.Engedélyek: Index lekérdezéséhez keresési index adatolvasóra van szüksége. Index létrehozásához vagy frissítéséhez keresési indexadatok közreműködője szükséges. További információ: Csatlakozás szerepkörök használatával.
(Nem kötelező) SDK-telepítés:
- Piton:
pip install azure-search-documents - C#:
dotnet add package Azure.Search.Documents
- Piton:
(Nem kötelező) Ha egy lekérdezési sztring beépített szöveg-vektor konvertálását szeretné elérni, hozzon létre és rendeljen hozzá vektorosítót a keresési index vektormezőihez.
API, eszköz és használható minta kiválasztása
A Azure portál Keresőböngészője (a stabil és az előzetes verziójú API keresési szintaxisát egyaránt támogatja) JSON nézetet használ, amely lehetővé teszi a hibrid kérések beillesztését.
A Azure SDK-k újabb stabil vagy előzetes verziójú csomagjai (lásd az SDK-funkciók támogatásának változásnaplóit).
Stabil REST API-k vagy egy friss előzetes API-verzió, ha olyan előzetes verziójú funkciókat használ, mint a maxTextRecallSize és a countAndFacetMode (előzetes verzió).
Az olvashatóság érdekében REST-példákkal ismertetjük az API-k működését. A REST-ügyfél , például a Visual Studio Code a REST-bővítmény használatával hibrid lekérdezéseket hozhat létre. Az Azure SDK-ket is használhatja. További információ : Rövid útmutató: Vektorkeresés.
Használható hibrid minták
Ha még nem használja a hibrid keresést, válasszon egy mintát, és finomhangoljon kis lépésekben. Ne kezdje a vektorok maximális visszahívásával, a nagy szövegvisszahívással és a szemantikai újrarankálással ugyanabban a kérésben.
Kiegyensúlyozott hibrid (alapértelmezett): Ezt használja először a legtöbb számítási feladathoz.
kKezdje a 30–50 tartományban,topa 10–20 tartományban, és csak akkor engedélyezze a szemantikai rangsorolást, ha javítja a mért relevanciát.Visszahívás–első hibrid: Ez olyan nehéz lekérdezésekhez használható, ahol a lefedettség a cél. Növelje
maxTextRecallSizefokozatosan, és tartsa mérsékelten a vektorbeállításokat. Magasabb egyesítési költség várható.Precíziós-orientált hibrid: Ezt használja az alacsony késleltetés érdekében nagy léptékben. Tartsa
késtopszerényen, alkalmazzon szelektív szűrőket, és kerülje azokat a szemantikai funkciókat, amelyek nem adnak értéket.
Miért van korlátozva a túlterhelt lekérdezések száma?
A hibrid lekérdezések párhuzamosan futtatják a szöveg- és vektorlekérdezéseket, majd egyesítik az eredményeket az RRF-sel. Ha növeli a lexikális hozzájárulást (például a hibrid súlyozás módosításával a BM25 javára), növeli a vektorjelöltekkel egyesítendő szövegjelöltek számát. Ha ezt drága vektorbeállításokkal és szemantikai rerankinggel kombinálja, a processzor- és memóriaterhelés gyorsan emelkedik.
Kisebb kapacitáskonfigurációk esetén ez az extra egyesítési és újraépítési munka a következőt okozhatja:
- Nagyobb késés és p95/p99 kiugrás
- 429 szabályozási válasz
- Ügyfél által megfigyelt elvetett vagy időtúllépéses kérelmek, ha az újrapróbálkozási viselkedés nincs konfigurálva
A sorrend finomhangolása a horizontális felskálázás előtt
A lekérdezési és vektorbeállítások finomhangolása replikák hozzáadása előtt:
- Először csökkentse a költséges vektorkeresési beállításokat.
Ha például
efSearchmaxConnectionsagresszíven van beállítva, csökkentse őket a felskálázás előtt (például csökkentseefSearcha 800-ról 128-ra 192-et, és csökkentsemaxConnectionsa 64-ről 32-re). - Korlátozza a szemantikai újrarankálás hatókörét azokra az esetekre, amelyek előnyben részesülnek.
- Tesztelje újra a késést és a 429-et reprezentatív terhelés mellett.
- A replikákat csak akkor méretezheti, ha a szabályozás a hangolás után is megmarad.
Ezzel a sorrendben javíthatja a stabilitást, és szabályozhatja a költségeket a skálázás előtt.
Hibrid lekérdezés beállítása
Ez a szakasz bemutatja a hibrid lekérdezések alapstruktúráját, valamint azt, hogy miként állíthat be egyet a Keresőböngészőben vagy a REST-ügyfélben való végrehajtáshoz.
Az eredmények egyszerű szövegben jelennek meg, beleértve a vektorokat is.retrievable Mivel a numerikus vektorok nem hasznosak a keresési eredményekben, válasszon más mezőket az indexben proxyként a vektoregyezéshez. Ha például egy index "descriptionVector" és "descriptionText" mezőkkel rendelkezik, a lekérdezés megfelelhet a "descriptionVector" kifejezésnek, de a keresési eredmény a "descriptionText" szöveget is megjelenítheti. A paraméter használatával select csak az emberek által olvasható mezőket adhatja meg az eredményekben.
Nyissa meg a keresőszolgáltatást a Azure portálon.
A Kereséskezelési>indexek területen válasszon ki egy vektorokat és nem vektortartalmat tartalmazó indexet. A Kereséskezelő az első lap.
A Nézet területen váltson JSON-nézetre , hogy be tudja illeszteni egy vektoros lekérdezésbe.
Cserélje le az alapértelmezett lekérdezéssablont egy hibrid lekérdezésre. Az alapszintű hibrid lekérdezésben egy szöveges lekérdezés van megadva
search, és egy vektoros lekérdezés van megadva a mezőbenvectorQueries.vector. A szöveges lekérdezés és a vektoros lekérdezés lehet egyenértékű vagy eltérő, de gyakori, hogy ugyanazzal a szándékkal osztoznak.Ez a példa a vector rövid útmutatójából származik amely vektor- és nemvektortartalmú, valamint számos lekérdezési példát tartalmaz. A rövidség kedvéért a vektor ebben a cikkben le lett rövidítve.
{ "search": "historic hotel walk to restaurants and shopping", "vectorQueries": [ { "vector": [0.01944167, 0.0040178085, -0.007816401 ... <remaining values omitted> ], "k": 7, "fields": "DescriptionVector", "kind": "vector", "exhaustive": true } ] }Válassza a Keresés lehetőséget.
Tipp
A keresési eredmények könnyebben olvashatók, ha elrejti a vektorokat. A Lekérdezési beállítások területen kapcsolja be a Vektorértékek elrejtése a keresési eredmények között beállítást.
Íme a lekérdezés egy másik verziója. Ez hozzáad egy
countértéket a talált egyezések számához, egyselectadott mezők kiválasztására szolgáló paraméterhez, valamint egytopparaméterhez, amely az első hét találatot adja vissza.{ "count": true, "search": "historic hotel walk to restaurants and shopping", "select": "HotelId, HotelName, Category, Tags, Description", "top": 7, "vectorQueries": [ { "vector": [0.01944167, 0.0040178085, -0.007816401 ... <remaining values omitted> ], "k": 7, "fields": "DescriptionVector", "kind": "vector", "exhaustive": true } ] }
maxTextRecallSize és countAndFacetMode beállítása (előzetes)
A hibrid lekérdezések beállíthatók annak szabályozására, hogy az egyes részkérések mekkora része járul hozzá az összesített eredményekhez. A maxTextRecallSize paraméter (előzetes verzió) beállítása azt határozza meg, hogy a rendszer hány BM25-rangsorolt eredményt ad át a hibrid rangsorolási modellnek.
Ha a kérése facettákat tartalmaz, használjon nem vektoros mezőket, amelyek az indexben facetable jelöléssel szerepelnek. A vektormezők nem használhatók felosztási szempontként.
Az aspektusok száma a lekérdezés típusától függ:
- Egy csak szöveges lekérdezésben a szempontok a szöveges lekérdezésre illeszkedő dokumentumokat számolják.
- A csak vektoros lekérdezésekben a aspektusok megszámolják a
kvektoros lekérdezés által visszaadott dokumentumokat. - Hibrid lekérdezésekben a aspektusok a vektor és a szöveg eredményeit is figyelembe veszik. A vektoroldal a
klegközelebbi dokumentumokhoz járul hozzá. A szöveges oldal BM25-rangsorolt dokumentumokat ad hozzá. AcountAndFacetModeparaméter (előzetes verzió) meghatározza, hogy a szám- és aspektusszámítások az összes szöveges egyezést használják-e, vagy csak a rangsoroláshoz lekért szöveges egyezéseket.
Ha a maxTextRecallSize-t használja, érdemes lehet a countAndFacetMode-et is beállítania. Ez a paraméter határozza meg, hogy a szöveges lekérdezésnek megfelelő összes dokumentumot tartalmazza-e countfacets , vagy csak az maxTextRecallSize ablakban lekért dokumentumokat. Az alapértelmezett érték a countAllResults.
Az alapértelmezett countAllResults mód esetén a számlálók és az aspektusok olyan szövegoldali dokumentumokat is tartalmazhatnak, amelyek nem kérhetők le az RRF-rangsoroláshoz, mert az maxTextRecallSize ablakon kívül esnek. A(z) maxTextRecallSize növelése növeli a rangsoroláshoz elérhető, BM25 alapján rangsorolt dokumentumok számát, de a vektoros hozzájárulást nem növeli k fölé. Akkor használja countRetrievableResults , ha azt szeretné, hogy a szám- és a szempontszámítás hatóköre a hibrid rangsoroláshoz lekért dokumentumokra terjedjen ki.
A beállítások beállításához a legújabb előzetes REST API-t javasoljuk.
Tipp
A hibrid lekérdezések hangolásának másik módszere a vektoros súlyozás, amellyel növelhető a vektoros lekérdezések jelentősége a kérelemben.
Használja a Keresés – POST (előzetes verzió) vagy a Keresés – GET (előzetes verzió) elemet az előnézeti paraméterek megadásához.
Adjon hozzá egy
hybridSearchlekérdezésparaméter-objektumot a hibrid lekérdezés BM25 rangsorolt eredményeivel visszahívott dokumentumok maximális számának beállításához. Két tulajdonsága van:maxTextRecallSizemeghatározza a BM25-rangsorolt eredmények számát, melyeket a hibrid lekérdezéseknél alkalmazott Reciprocal Rank Fusion (RRF) rangsoroló használ. Az alapértelmezett érték 1000. A maximális érték 10 000.countAndFacetModeegy hibrid lekérdezés darabszámát és hatókörét jelenti. Az alapértelmezett beállításcountAllResultsa teljes hibrid eredménykészletet használja, beleértve a szöveges lekérdezésnek megfelelő összes dokumentumot is, még akkor is, ha a szöveges egyezések némelyike nem lesz lekérve az RRF-rangsoroláshoz, mert azok azmaxTextRecallSizeablakon kívül esnek. AcountRetrievableResultshasználatával a darabszámot és a facettákat a rangsoroláshoz lekért dokumentumokra korlátozhatja, beleértve amaxTextRecallSizeBM25 szerint rangsorolt dokumentumokat és akvektoros találatokat.
Beállítás
maxTextRecallSize:Csökkentse,
maxTextRecallSizeha a vektoros hasonlóság keresése általában felülmúlja a hibrid lekérdezés szövegoldalát.Növelje
maxTextRecallSize, ha nagy indexe van, és az alapértelmezett érték nem rögzíti a megfelelő számú eredményt. Nagyobb BM25-rangsorolt eredménykészlet esetén beállíthatja atop,skipésnextparamétereket is, hogy lekérhessen az eredmények bizonyos részeit.
Az alábbi REST-példák két használati esetet mutatnak be a beállításhoz maxTextRecallSize.
Az első példa 100-ra csökken maxTextRecallSize , és a hibrid lekérdezés szövegoldalát csupán 100 dokumentumra korlátozza. Azt is beállítja, hogy a countAndFacetMode csak a visszakereshető dokumentumokat vegye figyelembe a darabszám- és facet-számításokban.
POST https://[service-name].search.windows.net/indexes/[index-name]/docs/search?api-version=2026-08-01-preview
{
"vectorQueries": [
{
"kind": "vector",
"vector": [1.0, 2.0, 3.0],
"fields": "my_vector_field",
"k": 10
}
],
"search": "hello world",
"hybridSearch": {
"maxTextRecallSize": 100,
"countAndFacetMode": "countRetrievableResults"
}
}
A második példa maxTextRecallSize értékét 5000-re növeli. Emellett a "top," "skip," és "next" parancsokat használja az eredmények lekérésére a nagy eredményhalmazokból. Ebben az esetben a kérés a BM25-rangsorolt eredmények 1500 és 2000 közötti pozícióit lekéri, hogy szöveges lekérdezési hozzájárulást nyújtson az RRF kompozit eredményhalmazhoz.
POST https://[service-name].search.windows.net/indexes/[index-name]/docs/search?api-version=2026-08-01-preview
{
"vectorQueries": [
{
"kind": "vector",
"vector": [1.0, 2.0, 3.0],
"fields": "my_vector_field",
"k": 10
}
],
"search": "hello world",
"top": 500,
"skip": 1500,
"next": 500,
"hybridSearch": {
"maxTextRecallSize": 5000,
"countAndFacetMode": "countRetrievableResults"
}
}
Hivatkozás: hybridSearch | maxTextRecallSize | countAndFacetMode
Példák hibrid lekérdezésekre
Ez a szakasz több olyan lekérdezési példát is bemutat, amelyek a hibrid lekérdezési mintákat szemléltetik.
Példa: Hibrid keresés szűrővel
Ez a példa egy szűrőt ad hozzá, amelyet a filterable keresési index nem-vektoros mezőire alkalmazunk.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
Content-Type: application/json
api-key: {{admin-api-key}}
{
"vectorQueries": [
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"k": 10
}
],
"search": "historic hotel walk to restaurants and shopping",
"vectorFilterMode": "preFilter",
"filter": "ParkingIncluded",
"top": "10"
}
Főbb pontok:
A szűrők a szűrhető mezők tartalmára vonatkoznak. Ebben a példában a ParkingIncluded mező logikai érték, amelyet az indexsémában
filterable-ként jelölnek.Hibrid lekérdezésekben szűrők alkalmazhatók a lekérdezés végrehajtása előtt a lekérdezési felület csökkentése vagy a lekérdezés végrehajtása után az eredmények levágása érdekében.
"preFilter"az alapértelmezett érték. A használathozpostFiltervagystrictPostFilter(előzetes verzió) állítsa be a szűrőfeldolgozási módot az ebben a példában látható módon.Amikor utólag szűri a lekérdezési eredményeket, az eredmények száma kevesebb lehet, mint az első n.
Hivatkozás: szűrő | vektorFilterMode
Példa: Hibrid keresés vektoralkotó lekérdezéseket célzó szűrőkkel (előzetes verzió)
A legújabb előzetes REST API használatával felülbírálhat egy globális szűrőt a keresési kérésen egy másodlagos szűrő alkalmazásával, amely kifejezetten a hibrid kérések vektor-allekérdezéseire irányul.
Ez a funkció részletes vezérlést biztosít azáltal, hogy a szűrők csak a vektoros keresési eredményeket befolyásolják, így a kulcsszóalapú keresési eredmények nem változnak.
A célzott szűrő teljes mértékben felülírja a globális szűrőt, beleértve a biztonsági vágáshoz vagy térinformatikai kereséshez használt szűrőket is. Olyan esetekben, amikor globális szűrőkre van szükség, például biztonsági vágásra, ezeket a szűrőket kifejezetten be kell vonni a legfelső szintű szűrőbe és minden vektorszintű szűrőbe, hogy a biztonság és az egyéb korlátozások következetesen érvényesüljenek.
Célzott vektorszűrők alkalmazása:
Használja a latest preview Search Documents REST API vagy a szolgáltatást biztosító Azure SDK bétacsomagot.
Módosítsa a lekérdezési kérelmet, és adjon hozzá egy új
vectorQueries.filterOverrideparaméterkészletet egy OData-szűrőkifejezéshez.
Íme egy példa a hibrid lekérdezésre, amely szűrő felülbírálást ad hozzá. A "Rating gt 3" globális szűrőt a rendszer futásidőben lecseréli a filterOverride.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-08-01-preview
{
"vectorQueries": [
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"exhaustive": true,
"filterOverride": "Address/City eq 'Seattle'",
"k": 10
}
],
"search": "historic hotel walk to restaurants and shopping",
"select": "HotelName, Description, Address/City, Rating",
"filter": "Rating gt 3",
"debug": "vector",
"top": 10
}
Példa: Szemantikai hibrid keresés
Feltéve, hogy az indexdefiníció szemantikai konfigurációt tartalmaz, létrehozhat egy olyan lekérdezést, amely vektorkeresést és kulcsszókeresést is tartalmaz, szemantikai rangsorolással az egyesített eredményhalmaz felett. Igény szerint feliratokat és válaszokat is hozzáadhat.
Ha a szemantikai rangsorolást vektorokkal használja, győződjön meg arról, hogy k az 50-et állítja be. A szemantikai rangsoroló legfeljebb 50 találatot használ bemenetként. Ha kevesebb mint 50-et ad meg, ezzel a szemantikai rangsorolási modellek szükséges bemeneteit vonja meg.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
Content-Type: application/json
api-key: {{admin-api-key}}
{
"vectorQueries": [
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"k": 50
}
],
"search": "historic hotel walk to restaurants and shopping",
"select": "HotelName, Description, Tags",
"queryType": "semantic",
"semanticConfiguration": "my-semantic-config",
"captions": "extractive",
"answers": "extractive",
"top": "50"
}
Főbb pontok:
A szemantikai rangsoroló legfeljebb 50 találatot fogad el az egyesített válaszból.
A "queryType" és a "szemanticConfiguration" megadása kötelező.
A "feliratok" és a "válaszok" opcionálisak. Az értékek szó szerinti szövegből lesznek kinyerve az eredményekben. A rendszer csak akkor ad vissza választ, ha az eredmények olyan tartalmat tartalmaznak, amely a lekérdezésre adott válasz jellemzőivel rendelkezik.
Hivatkozás: queryType | szemantikaiKonfiguráció | feliratok | válaszok
Példa: Szemantikai hibrid keresés szűrővel
Ez a példa egy szűrőt ParkingIncluded ad hozzá egy szemantikai hibrid lekérdezéshez.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
Content-Type: application/json
api-key: {{admin-api-key}}
{
"vectorQueries": [
{
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "DescriptionVector",
"kind": "vector",
"k": 50
}
],
"search": "historic hotel walk to restaurants and shopping",
"select": "HotelName, Description, Tags",
"queryType": "semantic",
"semanticConfiguration": "my-semantic-config",
"captions": "extractive",
"answers": "extractive",
"filter": "ParkingIncluded",
"vectorFilterMode": "preFilter",
"top": "50"
}
Főbb pontok:
A szűrési mód befolyásolhatja a szemantikai rangsoroló számára elérhető eredmények számát. Ajánlott eljárásként adja meg a szemantikai rangsorolónak a dokumentumok maximális számát (50). Ha az előszűrők vagy az utószűrők túl szelektívek, előfordulhat, hogy nem látja el elegendő dokumentummal a szemantikai rangsorolót, mivel így kevesebb mint 50 dokumentum áll a rendelkezésére.
preFiltera rendszer a lekérdezés végrehajtása előtt alkalmazza. Ha az előszűrő 100 dokumentumra csökkenti a keresési területet, akkor a vektoros lekérdezés ezeknek a dokumentumoknak aDescriptionVectormezőjén hajtódik végre, és visszaadja a k=50 legjobb egyezést. Ez az 50 egyező dokumentum ezután átkerül az RRF-hez az egyesített eredményekhez, majd a szemantikai rangsorolóra.postFiltera rendszer a lekérdezés végrehajtása után alkalmazza. Ha a k=50 50 egyezést ad vissza a vektoros lekérdezés oldalán, utána pedig ezekre az egyezésekre alkalmaznak egy utólagos szűrőt, akkor az eredmények számát csökkenti az a dokumentumszám, amely megfelel a szűrőfeltételeknek. Így kevesebb mint 50 dokumentum marad hátra, amit átadhat a szemantikai rangsorolónak. Tartsa szem előtt, ha szemantikai rangsort használ. A szemantikai rangsoroló akkor működik a legjobban, ha 50 dokumentumot ad meg bemenetként.strictPostFilter(előzetes verzió) a szűretlen felsőkeredményekre lesz alkalmazva a lekérdezés végrehajtása után. Mindig kevesebb vagy egyenlő mintkdokumentumok számát adja vissza. Ha a szűretlen k=50 50 szűretlen eredményt ad vissza, és a szűrő 30 dokumentumnak felel meg, a rendszer csak 30 dokumentumot ad vissza az eredményhalmazban, még akkor is, ha az index több mint 30 dokumentumot tartalmaz, amelyek megfelelnek a szűrőnek. Mivel ez a mód a legnagyobb csökkenést okozza a visszahívási arányban, nem javasoljuk, hogy szemantikai rangsorolási eszközzel használja.
Lekérdezési válasz konfigurálása
A hibrid lekérdezés beállításakor gondolja át a válaszstruktúrát. A keresőmotor rangsorolja a megfelelő dokumentumokat, és a legrelevánsabb eredményeket adja vissza. A válasz egy lapított sorkészlet. A lekérdezés paraméterei határozzák meg, hogy mely mezők vannak az egyes sorokban, és hány sor szerepel a válaszban.
A válasz mezői
A keresési eredmények a keresési index mezőiből retrievable állnak. Az eredmény lehet a következő:
- Minden
retrievablemező (alapértelmezés szerint REST API). - A lekérdezés egyik
selectparaméterében explicit módon felsorolt mezők.
A cikkben szereplő példák a select utasítást használták a szöveget (nem vektort) tartalmazó mezők megadására a válaszban.
Megjegyzés
A vektorok nem fordíthatók vissza emberi olvasható szöveggé, ezért ne adja vissza őket a válaszban. Ehelyett válassza ki a keresési dokumentumra jellemző nem adatmegjelenítő mezőket. Ha például a lekérdezés egy "DescriptionVector" mezőt céloz meg, egy egyenértékű szövegmezőt ad vissza, ha van egy ("Leírás") a válaszban.
Találatok száma
A lekérdezések tetszőleges számú dokumentummal egyezhetnek, akárhányat is, ha a keresési feltételek gyengeek (például "search=*" null lekérdezés esetén). Mivel ritkán praktikus a korlátlan eredmények visszaadása, meg kell adnia a maximum határt a teljes válaszhoz:
-
"top": ncsak kulcsszóalapú lekérdezések eredményei (vektor nélkül) -
"k": ncsak vektoros lekérdezések eredményei -
"top": na "search" paramétert tartalmazó hibrid lekérdezések (szemantikai vagy anélküli) eredményei
Mindkettő k , és top nem kötelező. Meghatározatlan, a válaszban szereplő eredmények alapértelmezett száma 50. Beállíthatja a top és skip értékét az eredmények átlapozásához, vagy módosíthatja az alapértelmezett értéket.
Megjegyzés
Ha hibrid keresést használ a 2024-05-01-preview API-ban, a maxTextRecallSize használatával szabályozhatja a kulcsszó-lekérdezés eredményeinek számát. Kombinálja ezt az egyes keresési alrendszerek (kulcsszó és vektor) reprezentációjának szabályozására szolgáló k beállítással.
Szemantikai rangsoroló eredményei
Megjegyzés
A szemantikai rangsoroló legfeljebb 50 találatot dolgozhat fel.
Ha szemantikai rangsorolót használ a 2024-05-01-preview vagy újabb verzióban, ajánlott úgy beállítani k és maxTextRecallSize értékét, hogy azok összege legalább 50 legyen. Ezután a paraméterrel top korlátozhatja a felhasználónak visszaadott eredményeket.
Ha 2024-05-01-nél korábbi API-verzióban használ szemantikai rangsorolót, kövesse az alábbi lépéseket:
- Csak kulcsszóalapú keresés esetén (vektorok nélkül) 50-re van állítva
top - A hibrid kereséshez állítsa a
kértéket 50-re, hogy biztosítsa a szemantikai rangsoroló számára legalább 50 találat elérését.
Rangsor
Több halmazt hoznak létre hibrid lekérdezésekhez az opcionális szemantikai újrasorolással vagy anélkül. Az eredmények rangsorolását a kölcsönös rangsor fúzió (RRF) számítja ki.
Ebben a szakaszban hasonlítsa össze az egyvektoros keresés és a felső eredmény egyszerű hibrid keresése közötti válaszokat. A különböző rangsorolási algoritmusok, a HNSW hasonlósági metrikái és az RRF ebben az esetben különböző nagyságrendű pontszámokat hoznak létre. Ez a viselkedés terv szerint történik. Az RRF-pontszámok meglehetősen alacsonynak tűnhetnek, még magas hasonlóságú egyezéssel is. Az alacsonyabb pontszámok az RRF-algoritmus jellemzői. Az RRF-et tartalmazó hibrid lekérdezésekben a rangsorolt dokumentumok több reciprokja szerepel az eredményekben, mivel az RRF rangsorolt dokumentumainak viszonylag kisebb pontszáma van, szemben a tiszta vektorkereséssel.
Egyvektoros keresés: @search.score a koszinusz-hasonlóság (alapértelmezett vektor-hasonlóság távolságfüggvény) szerint rendezett eredményekhez.
{
"@search.score": 0.8399121,
"HotelId": "49",
"HotelName": "Swirling Currents Hotel",
"Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.",
"Category": "Luxury",
"Address": {
"City": "Arlington"
}
}
Hibrid keresés: @search.score a kölcsönös rangsor fúzióval rangsorolt hibrid eredményekhez.
{
"@search.score": 0.032786883413791656,
"HotelId": "49",
"HotelName": "Swirling Currents Hotel",
"Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.",
"Category": "Luxury",
"Address": {
"City": "Arlington"
}
}
Hibrid lekérdezések hibaelhárítása
A hibrid lekérdezésekkel kapcsolatos gyakori problémák diagnosztizálásához használja az alábbi táblázatot.
| Kérdés | Lehetséges ok | Felbontás |
|---|---|---|
| Üres találatok | A vektormező neve nem egyezik vagy hiányzik az indexadatokból | Ellenőrizze, hogy fields megfelel-e vectorQueries egy vektormezőnek az indexsémában. Ellenőrizze, hogy a dokumentumok vektoradatokat tartalmaznak-e. |
| Alacsony RRF-pontszámok | Normál RRF-viselkedés | Az RRF-pontszámok eredendően alacsonyabbak, mint a hasonlósági pontszámok. A 0,03-as pontszám továbbra is erős egyezést jelezhet. |
| A vektoreredmények dominálnak | Szöveges lekérdezés alulteljesítő | Növelje a maxTextRecallSize, hogy több BM25 eredményt kapjon, vagy módosítsa a vektorok súlyozásának módosítását. |
| A szöveges eredmények dominálnak | A vektorok hasonlósága túl alacsony | Ellenőrizze a beágyazás minőségét. Győződjön meg arról, hogy a lekérdezésvektor ugyanazt a modellt használja, mint a dokumentumvektorok. |
| A szemantikai rangsoroló kevesebb eredményt ad vissza | Nem megfelelő bemeneti dokumentumok | A k szemantikai rangsorolás használatakor állítsa be legalább 50-et. Ellenőrizze, hogy a szűrők nem túl szigorúak-e. |
| A szűrő nincs alkalmazva a vektorokra | Csak globális szűrő használata | Vektorspecifikus szűréshez használja filterOverride a vektoros lekérdezésben (előzetes verzió). |
| Váratlan mező az eredményekben |
select a paraméter hiányzik |
Adja hozzá select a visszaadni kívánt mezők megadásához. A vektormezők kizárása az olvashatóság érdekében. |