Anteckning
Å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.
Exact Nearest Neighbor (ENN) Vector Search utför en fullständig avståndsberäkning över alla indexerade vektorer för att garantera hämtningen av närmaste grannar baserat på ett angivet avståndsmått. ENN stöds på alla klusternivåer utan extra kostnad och kräver ingen registrering.
Vad är exakt närmaste granne (ENN) vektorsökning?
ENN Vector Search utför en omfattande jämförelse mellan frågevektorn och varje vektor i datauppsättningen. Den här metoden säkerställer:
- Garanterad noggrannhet: Hämtar de sanna närmaste grannarna enligt det valda avståndsmåttet (t.ex. euklidiska avstånd, cosinuslikhet).
- Ökad beräkningsbelastning: På grund av dess omfattande karaktär är ENN mer resursintensivt och kan resultera i längre frågetider, särskilt med stora datamängder.
Omvänt använder approximerad närmaste granne-sökning (ANN) indexeringstekniker som Hierarchical Navigable Small World (HNSW), Inverted File (IVF) eller DiskANN för att påskynda sökningar. ANN erbjuder snabbare svarstider och bättre skalbarhet, men kan inte alltid returnera de absolut närmaste grannarna.
När ska du använda ENN-vektorsökning?
Överväg att använda ENN Vector Search i följande scenarier:
- Krav på hög noggrannhet: För program där exakta topp-k-resultat är kritiska– till exempel känsliga rekommendationssystem eller vetenskaplig forskning – garanterar ENN maximal noggrannhet.
- Hanterbar datamängdsstorlek: När du hanterar mindre datamängder eller när prestandabegränsningarna är mindre stränga är ENN:s uttömmande karaktär möjlig.
- Låg selektivitetsfiltrering: Om du tillämpar filter som resulterar i en relativt liten delmängd data kan ENN effektivt utföra omfattande jämförelser inom den här delmängden.
Till exempel: I en stor datamängd som innehåller miljontals dokument kategoriserade efter klienter kan en vektorsökning inom en specifik klientorganisation (bestående av några tusen vektorer) hanteras effektivt av ENN.
Använda ENN-vektorsökning
Innan du använder ENN Vector Search ska du se till att ett vektorindex (t.ex. IVF, HNSW, DiskANN) skapas för den relevanta sökvägen. Om det redan finns ett vektorindex behöver du inte återskapa det när du växlar mellan sökmetoder, eftersom ENN fungerar oberoende av dessa index under frågekörningen.
Om du vill aktivera ENN anger du "exact": true
i din fråga. Till exempel:
{
"$search": {
"cosmosSearch": {
"path": "myVectorField",
"exact": true, // Enables ENN
"query": [0.2, 0.4, 0.9], // Query vector
"k": 10, // Number of results to return
"filter": {
"tenant_id": { "$eq": "tenant123" }
}
}
}
}
Kombinera ENN-vektorsökning med filter
ENN-vektorsökning kan kombineras med attribut- eller geospatiala filter för att begränsa sökomfånget till en specifik delmängd data. När filtret har tillämpats utför sökmotorn uttömmande avståndsberäkningar på den filtrerade delmängden och returnerar de översta k närmaste grannarna som uppfyller filterkriterierna.
Scenario för användningsfall
En klient har en samling på cirka 300 000 dokument som var och en innehåller ett vektorfält, ett tenant_id
fält (som representerar tusentals klienter) och andra attribut. De observerade att ANN-vektorsökningar med ett tenant_id
filter var långsamma.
Genom att växla till ENN-vektorsökning med samma filter uppnådde klienten en 50% förbättring av frågeprestanda och uppnådde 100% träffsäkerhet.
Vanliga frågor och svar
Hur fungerar ENN i stor skala?
- Prestanda för stora datauppsättningar: ENN kan vara långsammare för stora datauppsättningar utan selektiv filtrering på grund av behovet av att utvärdera varje vektor.
- Högre beräkningskostnad: ENN innebär att jämföra frågevektorn med alla (eller filtrerade) vektorer, vilket leder till ökad resursanvändning för en stor datamängd.
ANN vs ENN: Vad är skillnaden?
- Exact Nearest Neighbor (ENN) Vector Search erbjuder 100% noggrannhet genom att fullständigt jämföra frågevektorn med alla indexerade vektorer, vilket gör den lämplig för program som kräver exakta resultat eller när du hanterar mindre datamängder eller filtrerade delmängder.
- Ungefärlig sökning efter närmaste granne (ANN) använder specialiserade indexeringstekniker för att ge snabbare svar och bättre skalbarhet för stora datamängder, även om det kan äventyra noggrannheten något.