Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Observera
Azure AI-sökning är tillgängligt via Azure-portalen, REST-API:er och Azure-SDK:er. Den ligger också till grund för Foundry IQ, det hanterade kunskapsskiktet som omvandlar företagsinnehåll till återanvändbara, behörighetsmedvetna kunskapsbaser för agenter i Microsoft Foundry-portalen.
Important
Funktioner, funktioner eller egenskaper som har markerats (förhandsversion) omfattas inte av ett serviceavtal, rekommenderas inte för produktionsarbetsbelastningar och kan ändras eller begränsas innan de blir allmänt tillgängliga. Villkoren för Azure AI-sökning förhandsgranskning gäller för alla förhandsgranskningsfunktioner, oavsett om de är fristående eller en del av en allmänt tillgänglig funktion.
Hybridsökning kombinerar text (nyckelord) och vektorfrågor i en enda sökbegäran. Båda frågorna körs parallellt. Resultaten sammanfogas och sorteras om efter nya sökpoäng, med hjälp av Reciprocal Rank Fusion (RRF) för att returnera en enhetlig resultatuppsättning. I många fall returnerar hybridfrågor med semantisk rangordning de mest relevanta resultaten per benchmark-tester.
I den här artikeln lär du dig att:
- Konfigurera en grundläggande hybridbegäran
- Lägga till parametrar och filter
- Förbättra relevansen med hjälp av semantisk rangordning eller vektorvikter
- Optimera frågebeteenden genom att kontrollera indata (
maxTextRecallSize)
I slutet av den här artikeln kan du köra hybridfrågor som kombinerar nyckelords- och vektorsökning med valfri semantisk rangordning.
Förutsättningar
Ett Azure-abonnemang. Skapa en kostnadsfritt.
En Azure AI-sökning tjänst. Skapa en tjänst eller find en befintlig tjänst.
Ett sökindex som innehåller
searchablevektor- och ickevektorfält. Vi rekommenderar guiden Importera data för att snabbt skapa ett index. I annat fall kan du läsa Skapa ett index och Lägga till vektorfält i ett sökindex.Behörigheter: Du behöver Search Index Data Reader för att köra frågor mot ett index. Om du vill skapa eller uppdatera ett index behöver du Search Index Data Contributor. Mer information finns i Ansluta med hjälp av roller.
(Valfritt) SDK-installation:
- Python:
pip install azure-search-documents - C#:
dotnet add package Azure.Search.Documents
- Python:
(Valfritt) Om du vill ha inbyggd text-till-vektorkonvertering av en frågesträng skapar och tilldelar du en vektoriserare till vektorfält i sökindexet.
Välj ett API, ett verktyg och ett fungerande mönster
Sökutforskaren i Azure-portalen (stöder både api-söksyntax för stabil och förhandsversion) har en JSON-vy som gör att du kan klistra in en hybridbegäran.
Nyare stabila paket eller förhandsversionspaket för Azure-SDK:er (se ändringsloggar för SDK-funktionsstöd).
Stabila REST-API:er eller en ny förhandsversion av API:et om du använder förhandsversionsfunktioner som maxTextRecallSize och countAndFacetMode (förhandsversion).
För läsbarhet använder vi REST-exempel för att förklara hur API:erna fungerar. Du kan använda en REST-klient som Visual Studio Code med REST-tillägget för att skapa hybridfrågor. Du kan också använda Azure-SDK:er. Mer information finns i Snabbstart: Vektorsökning.
Fungerande hybridmönster
Om du är nybörjare på hybridsökning väljer du ett mönster och finjusterar i små steg. Börja inte med maximal vektoråterkallelse, återkalla stor text och semantisk reranking i samma begäran.
Balanserad hybrid (standard): Använd den här först för de flesta arbetsbelastningar. Börja med
ki intervallet 30 till 50 itopintervallet 10 till 20 och aktivera endast semantisk rangordning när den förbättrar den uppmätta relevansen.Recall-first hybrid: Använd detta för svåra frågor där täckning är målet. Öka
maxTextRecallSizegradvis och håll vektorinställningarna måttliga. Förvänta dig högre sammanslagningskostnad.Hybrid med fokus på precision: Använd denna för låg svarstid i stor skala. Behåll
kochtopblygsamt, använd selektiva filter och undvik semantiska funktioner som inte lägger till värde.
** Varför överbelastade förfrågningar stryper
Hybridfrågor kör text- och vektorhämtning parallellt och sammanfogar sedan resultat med RRF. Om du ökar lexikala bidrag (till exempel genom att ändra hybridviktning till förmån för BM25) ökar du antalet textkandidater som måste sammanfogas med vektorkandidater. Om du kombinerar detta med dyra vektorinställningar och semantisk reranking ökar processor- och minnestrycket snabbt.
I mindre kapacitetskonfigurationer kan den här extra sammanfogningen och omrankningen orsaka:
- Högre svarstid och p95/p99-toppar
- 429 strypsvar
- Klient observerade borttagna eller tidsgränserade begäranden när återförsöksbeteendet inte har konfigurerats
Justera ordning innan du skalar ut
Justera fråge- och vektorinställningar innan du lägger till repliker:
- Minska dyra inställningar för vektorsökning först.
Om
efSearchochmaxConnectionstill exempel anges aggressivt sänker du dem innan du skalar ut (till exempel minskaefSearchfrån cirka 800 till 128 till 192 och minskamaxConnectionsfrån 64 till 32). - Begränsa omfånget för semantisk reranking till fall som drar nytta av det.
- Testa svarstiden igen och 429-frekvensen vid representativ belastning.
- Skala repliker endast om begränsningen kvarstår efter justering.
Använd den här sekvensen för att förbättra stabiliteten först och kontrollera kostnaderna innan du skalar.
Konfigurera en hybridfråga
I det här avsnittet beskrivs den grundläggande strukturen för en hybridfråga och hur du konfigurerar en i Sökutforskaren eller för körning i en REST-klient.
Resultaten returneras i oformaterad text, inklusive vektorer i fält som är markerade som retrievable. Eftersom numeriska vektorer inte är användbara i sökresultat väljer du andra fält i indexet som proxy för vektormatchningen. Om ett index till exempel har fälten "descriptionVector" och "descriptionText" kan frågan matchas på "descriptionVector", men sökresultatet kan visa "descriptionText". Använd parametern select för att endast ange fält som kan läsas av människor i resultatet.
Gå till söktjänsten i Azure-portalen.
Under Sökhanteringsindex> väljer du ett index som har vektorer och innehåll som inte är vektorer. Sökutforskaren är den första fliken.
Under Visa växlar du till JSON-vyn så att du kan klistra in en vektorfråga.
Ersätt standardfrågemallen med en hybridfråga. En grundläggande hybridfråga har en textfråga som anges i
searchoch en vektorfråga som anges undervectorQueries.vector. Textfrågan och vektorfrågan kan vara likvärdiga eller avvikande, men det är vanligt att de delar samma avsikt.Det här exemplet är från snabbstarten vector som innehåller vektor- och icke-bevektorinnehåll och flera frågeexempel. För korthet trunkeras vektorn i den här artikeln.
{ "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älj Sök.
Tips
Sökresultat är lättare att läsa om du döljer vektorerna. I Frågealternativ aktiverar du Dölj vektorvärden i sökresultat.
Här är en annan version av frågan. Den här lägger till en
countför antalet matchningar som hittas, enselectparameter för att välja specifika fält och entopparameter för att returnera de sju främsta resultaten.{ "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 } ] }
Ange maxTextRecallSize och countAndFacetMode (förhandsversion)
En hybridfråga kan justeras för att styra hur mycket av varje underfråga som bidrar till de kombinerade resultaten. Om du anger parametern maxTextRecallSize (förhandsversion) anges hur många BM25-rankade resultat som skickas till hybridrankningsmodellen.
Om din begäran innehåller fasetter använder du fält som inte är vektorfält och som är markerade som facetable i indexet. Vektorfält är inte fasettbara.
Antal fasetter beror på frågetypen:
- I en fråga med enbart text räknar fasetter antalet dokument som matchar frågan.
- I en fråga med endast vektor räknar fasetter de
kdokument som returneras av vektorfrågan. - I en hybridfråga tar fasetter hänsyn till både vektor- och textresultat. Vektorsidan bidrar med närmaste
kdokument. Textsidan bidrar med BM25-rankade dokument. ParameterncountAndFacetMode(förhandsversion) avgör om beräkningar för antal och fasetter använder alla textmatchningar eller endast de textmatchningar som hämtas för rangordning.
Om du använder maxTextRecallSizekanske du också vill ange countAndFacetMode. Den här parametern avgör om count och facets inkluderar alla dokument som matchade textfrågan eller endast dokument som hämtats i fönstret maxTextRecallSize . Standardvärdet är countAllResults.
Med standardläget countAllResults kan antal och fasetter innehålla dokument på textsidan som inte hämtas för RRF-rangordning eftersom de faller utanför fönstret maxTextRecallSize . Om du ökar maxTextRecallSize ökar antalet BM25-rankade dokument som är tillgängliga för rangordning, men ökar inte vektorbidraget utöver k. Använd countRetrievableResults om du vill att beräkningar för antal och fasetter ska begränsas till de dokument som hämtats för hybridrankning.
Vi rekommenderar det senaste REST-API:et i förhandsversion för att ange dessa alternativ.
Tips
En annan metod för hybridfrågningsjustering är vektorviktning, som används för att öka vikten av vektorfrågor i begäran.
Använd Sök – POST (förhandsversion) eller Sök – GET (förhandsversion) för att ange förhandsgranskningsparametrar.
Lägg till ett
hybridSearchfrågeparameterobjekt för att ange det maximala antalet dokument som återkallas via BM25-rankade resultat för en hybridfråga. Den har två egenskaper:maxTextRecallSizeanger antalet BM25-rankade resultat som ska tillhandahållas till RRF-rankningen (Reciprocal Rank Fusion) som används i hybridfrågor. Standardvärdet är 1 000. Maxvärdet är 10 000.countAndFacetModevisar antal och omfånget för fasetter för en hybridfråga. Standardvärdet,countAllResults, använder den fullständiga hybridresultatuppsättningen, inklusive alla dokument som matchar textfrågan, även om vissa av dessa textmatchningar inte hämtas för RRF-rangordning eftersom de faller utanför fönstretmaxTextRecallSize. AnvändcountRetrievableResultsför att begränsa antalet och fasetterna till de dokument som hämtas för rangordning, inklusivemaxTextRecallSizeBM25-rankade dokument och dekvektormatchningarna.
Ange
maxTextRecallSize:Minska
maxTextRecallSizeom vektorlikhetssökningen i allmänhet överträffar textsidan i hybridfrågan.Öka
maxTextRecallSizeom du har ett stort index och standardvärdet inte samlar in tillräckligt många resultat. Med en större BM25-rankad resultatuppsättning kan du också angetop,skipochnexthämta delar av dessa resultat.
Följande REST-exempel visar två användningsfall för att ange maxTextRecallSize.
Det första exemplet minskar maxTextRecallSize till 100, vilket begränsar textsidan i hybridfrågan till bara 100 dokument. Det anger också att countAndFacetMode bara ska inkludera dokument som kan hämtas i antal- och facettberäkningar.
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"
}
}
Det andra exemplet höjer maxTextRecallSize till 5 000. Den använder också top, skip och nästa för att hämta resultat från stora resultatuppsättningar. I det här fallet hämtar förfrågningen in BM25-rankade resultat, med början från position 1 500 till 2 000, som en del av bidraget av textfrågan till RRF:s sammanställda resultatmängd.
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"
}
}
Referens: hybridSearch | maxTextRecallSize | countAndFacetMode
Exempel på hybridfrågor
Det här avsnittet innehåller flera frågeexempel som illustrerar hybridfrågemönster.
Exempel: Hybridsökning med filter
Det här exemplet lägger till ett filter som tillämpas på filterable icke-vektor fält i sökindexet.
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"
}
Viktiga punkter:
Filter tillämpas på innehållet i filterbara fält. I det här exemplet är fältet ParkingIncluded ett booleskt värde och markeras som
filterablei indexschemat.I hybridfrågor kan filter användas före frågekörning för att minska frågeytan eller efter frågekörningen för att trimma resultaten.
"preFilter"är standardvärdet. Om du vill användapostFilterellerstrictPostFilter(förhandsversion) anger du filterbearbetningsläget enligt det som visas i det här exemplet.När du postfiltrerar frågeresultat kan antalet resultat vara färre än top-n.
Referens: filter | vectorFilterMode
Exempel: Hybridsökning med filter som riktar in sig på underfrågor för vektorer (förhandsversion)
Med hjälp av det senaste rest-API:et för förhandsversionen kan du åsidosätta ett globalt filter på sökbegäran genom att använda ett sekundärt filter som bara riktar sig mot vektorunderfrågorna i en hybridbegäran.
Den här funktionen ger detaljerad kontroll genom att säkerställa att filter endast påverkar vektorsökningsresultaten, vilket gör att nyckelordsbaserade sökresultat inte påverkas.
Det riktade filtret åsidosätter helt det globala filtret, inklusive eventuella filter som används för säkerhetsavgränsning eller geografisk sökning. I de fall där globala filter krävs, till exempel säkerhetstrimning, måste du uttryckligen inkludera dessa filter i både toppnivåfiltret och i varje filter på vektornivå för att säkerställa att säkerhet och andra begränsningar tillämpas konsekvent.
Så här använder du riktade vektorfilter:
Använd senaste förhandsversionen av Search Documents REST API eller ett Azure SDKs-betapaket som ger funktionen.
Ändra en frågebegäran och lägg till en ny
vectorQueries.filterOverrideparameteruppsättning i ett OData-filteruttryck.
Här är ett exempel på hybridfråga som lägger till en åsidosättning av filter. Det globala filtret "Rating gt 3" ersätts vid körning av 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
}
Exempel: Semantisk hybridsökning
Förutsatt att indexdefinitionen innehåller en semantisk konfiguration kan du formulera en fråga som innehåller vektorsökning och nyckelordssökning, med semantisk rangordning över den sammanfogade resultatuppsättningen. Du kan också lägga till bildtexter och svar.
När du använder semantisk rangordning med vektorer kontrollerar du att den är inställd på k 50. Semantisk ranker använder upp till 50 matchningar som indata. Om du anger mindre än 50 berövas de semantiska rankningsmodellerna nödvändiga indata.
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"
}
Viktiga punkter:
Semantisk ranker accepterar upp till 50 resultat från det sammanslagna svaret.
"queryType" och "semanticConfiguration" krävs.
"bildtexter" och "svar" är valfria. Värden extraheras från ordagrann text i resultatet. Ett svar returneras endast om resultatet innehåller innehåll med egenskaperna för ett svar på frågan.
Referens: queryType | semanticConfiguration | captions | answers
Exempel: Semantisk hybridsökning med filter
I det här exemplet läggs ett ParkingIncluded filter till i en semantisk hybridfråga.
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"
}
Viktiga punkter:
Filterläget kan påverka antalet resultat som är tillgängliga för den semantiska rankningen. Bästa praxis är att ge den semantiska rankern det maximala antalet dokument (50). Om förfilter eller postfilter är för selektiva kan du underserva den semantiska rankern genom att ge den färre än 50 dokument att arbeta med.
preFiltertillämpas före körning av frågan. Om förfilter minskar sökområdet till 100 dokument körs vektorfrågan överDescriptionVectorfältet för dessa 100 dokument och returnerar de bästa matchningarna för k=50. Dessa 50 matchande dokument skickas sedan till RRF för sammanslagna resultat och sedan till semantisk rangordning.postFiltertillämpas efter frågeexekvering. Om k=50 returnerar 50 matchningar på vektorfrågesidan, följt av ett efterfilter som tillämpas på de 50 matchningarna, minskas resultatet med antalet dokument som uppfyller filtervillkoren. Detta lämnar dig med färre än 50 dokument att skicka till ett semantiskt rankningssystem. Tänk på detta om du använder semantisk rangordning. Den semantiska rankern fungerar bäst om den har 50 dokument som indata.strictPostFilter(förhandsversion) tillämpas på de ofiltrerade topp-kresultaten efter att frågan har körts. Den returnerar alltid mindre än eller lika medkdokument. Om det ofiltrerade k=50 returnerar 50 ofiltrerade resultat och filtret matchar 30 dokument returneras endast 30 dokument i resultatuppsättningen, även om indexet har fler än 30 dokument som matchar filtret. Eftersom det här läget har den största minskningen av träffsäkerhet rekommenderar vi inte att du använder det med en semantisk rankerare.
Konfigurera ett frågesvar
När du konfigurerar hybridfrågan bör du tänka på svarsstrukturen. Sökmotorn rangordnar matchande dokument och returnerar de mest relevanta resultaten. Svaret är en utplattad raduppsättning. Parametrar i frågan avgör vilka fält som finns på varje rad och hur många rader som finns i svaret.
Fält i ett svar
Sökresultaten består av retrievable fält från ditt sökindex. Ett resultat är antingen:
- Alla
retrievablefält (ett REST-API standard). - Fält som uttryckligen anges i en
selectparameter i frågan.
Exemplen i den här artikeln använde ett select påstående för att specifikt ange textfält (icke-vektor) i svaret.
Observera
Vektorer är inte bakåtkompilerade i mänsklig läsbar text, så undvik att returnera dem i svaret. Välj i stället icke-vektorfält som är representativa för sökdokumentet. Om frågan till exempel riktar sig mot ett "DescriptionVector"-fält returnerar du ett motsvarande textfält om du har ett ("Beskrivning") i svaret.
Antal resultat
En fråga kan matcha valfritt antal dokument, så många som alla om sökvillkoren är svaga (till exempel "search=*" för en null-fråga). Eftersom det sällan är praktiskt att returnera obundna resultat bör du ange ett maxvärde för det övergripande svaret:
-
"top": nresultat för frågor med enbart nyckelord (ingen vektor) -
"k": nresultat för endast vektorfrågor -
"top": nresultat för hybridfrågor (med eller utan semantik) som innehåller en sökparameter
Både k och top är valfria. Ospecificerat är standardantalet resultat i ett svar 50. Du kan ange top och skip för att bläddra igenom fler resultat eller ändra standardvärdet.
Observera
Om du använder hybridsökning i API:et 2024-05-01-preview kan du styra antalet resultat från nyckelordsfrågan med hjälp av maxTextRecallSize. Kombinera detta med en inställning för k att styra representationen från varje sökundersystem (nyckelord och vektor).
Semantiska rankerresultat
Observera
Den semantiska rankern kan ta upp till 50 resultat.
Om du använder semantisk rangordnare i förhandsversionen 2024-05-01 eller senare är det en bästa praxis att ange att k och maxTextRecallSize summerar till minst 50 totalt. Du kan sedan begränsa de resultat som returneras till användaren med parametern top .
Om du använder semantisk rankning i en API-version tidigare än 2024-05-01-preview följer du dessa steg:
- För sökning med endast nyckelord (inga vektorer) inställt
toppå 50 - För hybridsökningen, ställ in
kpå 50 för att säkerställa att den semantiska rankaren får minst 50 resultat.
Rangordning
Flera uppsättningar skapas för hybridfrågor, med eller utan den valfria semantiska omrankningen. Rankning av resultat beräknas av Reciprocal Rank Fusion (RRF).
I det här avsnittet jämför du svaren mellan enkel vektorsökning och enkel hybridsökning för det översta resultatet. De olika rangordningsalgoritmerna, HNSW:s likhetsmått och RRF, ger i det här fallet poäng som har olika storlek. Det här beteendet är avsiktligt. RRF-poäng kan verka ganska låga, även med en hög likhetsmatchning. Lägre poäng är en egenskap hos RRF-algoritmen. I en hybridfråga med RRF inkluderas mer av reciprocalen för de rankade dokumenten i resultaten, med tanke på den relativt mindre poängen för RRF-rankade dokument, i motsats till ren vektorsökning.
Enkel vektorsökning: @search.score för resultat ordnade efter cosinélikhet (standardfunktion för vektorlikhetsavstånd).
{
"@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"
}
}
Hybridsökning: @search.score för hybridresultat som rangordnas med reciprokal rankningsfusion.
{
"@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"
}
}
Felsöka hybridfrågor
Använd följande tabell för att diagnostisera vanliga problem med hybridfrågor.
| Frågan | Möjlig orsak | Upplösning |
|---|---|---|
| Tomma resultat | Felmatchning av vektorfältnamn eller saknade indexdata | Kontrollera fields i vectorQueries matchar ett vektorfält i ditt indexschema. Kontrollera att dokumenten innehåller vektordata. |
| Låga RRF-poäng | Normalt RRF-beteende | RRF-poäng är i sig lägre än likhetspoäng. Poängen 0,03 kan fortfarande indikera en stark matchning. |
| Vektorresultat dominerar | Underpresterande textfråga | Öka maxTextRecallSize om du vill inkludera fler BM25-resultat eller justera vektorviktning. |
| Textresultat dominerar | Vektorlikheten är för låg | Kontrollera inbäddningskvaliteten. Se till att frågevektorn använder samma modell som dokumentvektorer. |
| Semantisk ranker returnerar färre resultat | Otillräckligt antal indatadokument | Ange k till minst 50 när du använder semantisk rangordning. Kontrollera att filtren inte är för restriktiva. |
| Filter som inte tillämpas på vektorer | Använd endast globalt filter | För vektorspecifik filtrering använder du filterOverride i vektorfrågan (förhandsversion). |
| Oväntat fält i resultat |
select parameter saknas |
Lägg till select för att ange vilka fält som ska returneras. Exkludera vektorfält för läsbarhet. |
Relaterat innehåll
- Översikt över hybridsökning
- Rangordning för hybridsökning med RRF
- Instruktioner för vektorsökning
- Semantisk rankning
- Filter för vektorsökning
- Granska vektordemokod för Python, C# eller JavaScript