QueryVectors işlemini kullanarak vektör benzerlik araması yapın.
QueryVectors, Standard mod dizinlerinde vektör benzerlik araması yapar. Fusion mod dizinleri için bunun yerine QueryVectorsFusion işlemini kullanın. Geriye dönük uyumluluk amacıyla, Fusion mod bir dizinin şemasında yalnızca float32 adlı tek bir vektör alanı tanımlanmışsa aramayı QueryVectors işlemiyle de sürdürebilirsiniz.
İzinler
Varsayılan olarak bir Alibaba Cloud hesabının tam izni bulunurken bir RAM kullanıcısının veya RAM rolünün izni yoktur. Alibaba Cloud hesap sahibi veya yönetici RAM ilkesi veya paket ilkesi ile izin vermelidir.
|
|
|
|
|
|
|
|
İstek sözdizimi
Bir vektör dizini oluşturulduktan sonraki 30 saniye içindeQueryVectorsçağrılarının hatırlama oranı düşük olabilir.PutVectorsişlemiyle yazılan veriler yaklaşık 2 ila 3 saniye içinde sorgulanabilir duruma gelir.
POST /?queryVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou-internal.oss-vectors.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Content-type: application/json
{
"filter": {
"$and": [{
"type": {
"$in": ["comedy", "documentary"]
}
}, {
"year": {
"$eq": "2020"
}
}]
},
"indexName": "string",
"queryVector": {
"float32":[float]
},
"returnDistance": boolean,
"returnMetadata": boolean,
"topK": int
}
İstek üst bilgileri
Bu işlem yalnızca ortak istek üst bilgilerini kullanır. Daha fazla bilgi için bkz. Ortak HTTP üst bilgileri.
İstek parametreleri
|
Parametre |
Tür |
Gerekli |
Örnek |
Açıklama |
|
indexName |
String |
Evet |
vectorindex1 |
Vektör dizininin adı. |
|
queryVector |
Konteyner |
Evet |
Yok |
Sorgu vektörü. Boyut, vektör dizininin boyutuyla eşleşmelidir. |
|
filter |
Konteyner |
Hayır |
Yok |
Verileri meta verilere göre filtreler. Meta veri filtreleri için aşağıdaki sınırlamalar geçerlidir:
|
|
returnDistance |
Boolean |
Hayır |
false |
Benzerlik mesafesinin döndürülüp döndürülmeyeceğini belirtir. Geçerli değerler:
|
|
returnMetadata |
Boolean |
Hayır |
false |
Meta verilerin döndürülüp döndürülmeyeceğini belirtir. Geçerli değerler:
|
|
topK |
Sayı |
Evet |
10 |
Döndürülecek en benzer sonuçların sayısı. Değer 1 ile 500 arasında bir tamsayı olmalıdır. |
Filtre operatörleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Filtre örnekleri
Aşağıda yaygın Filter ifade örnekleri verilmiştir. Operatör belirtilmediğinde varsayılan olarak $eq kullanılır.
// Simple equality (uses $eq by default when the operator is omitted)
{"category": "finance"}
// Explicit equality / inequality
{"category": {"$eq": "finance"}}
{"category": {"$ne": "archived"}}
// Numeric comparison
{"created_year": {"$gt": 2023}}
{"created_year": {"$gte": 2024}}
{"created_year": {"$lt": 2026}}
{"created_year": {"$lte": 2025}}
// Array matching
{"language": {"$in": ["zh", "en"]}}
{"language": {"$nin": ["ja", "ko"]}}
// Existence check
{"author": {"$exists": true}}
// Logical combination
{"$and": [{"category": {"$eq": "finance"}}, {"created_year": {"$gte": 2024}}]}
{"$or": [{"category": {"$eq": "finance"}}, {"category": {"$eq": "tech"}}]}
{"$nor": [{"category": {"$eq": "finance"}}, {"category": {"$eq": "tech"}}]}
// Multiple conditions on the same field (range)
{"score": {"$gte": 0.6, "$lte": 0.95}}
Yanıt üst bilgileri
Bu işlem yalnızca ortak yanıt üst bilgilerini kullanır. Daha fazla bilgi için bkz. Ortak HTTP üst bilgileri.
Yanıt öğeleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vektör birincil anahtarı. Üst düğüm: vectors |
|
|
|
|
Döndürülen vektör ile sorgu vektörü arasındaki benzerlik mesafesi. Daha küçük bir değer daha yüksek benzerliği gösterir. Bu parametre yalnızca Üst düğüm: vectors |
|
|
|
|
Vektörün tam meta verileri. Bu parametre yalnızca Üst düğüm: vectors |
Örnekler
POST /?queryVectors HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou-internal.oss-vectors.aliyuncs.com
Date: Thu, 17 Apr 2025 01:33:47 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218
Content-type: application/json
{
"filter": {
"$and": [{
"category": {
"$in": ["technology", "science"]
}
}, {
"year": {
"$eq": "2020"
}
}]
},
"indexName": "vectorindex1",
"queryVector": {
"float32": [0.15, 0.25, 0.35, 0.45, 0.55]
},
"returnDistance": true,
"returnMetadata": true,
"topK": 5
}
Örnek yanıt
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Connection: keep-alive
Server: AliyunOSS
Content-type: application/json
{
"vectors": [
{
"distance": 0.12,
"key": "doc-001",
"metadata": {
"category": ["technology", "ai"],
"title": "Introduction to Vector Search",
"year": "2020"
}
},
{
"distance": 0.25,
"key": "doc-003",
"metadata": {
"category": ["science"],
"title": "Advanced Vector Operations",
"year": "2020"
}
}
]
}
SDK
QueryVectors işlemi aşağıdaki SDK'larda kullanılabilir:
ossutil CLI
Bu işlemi gerçekleştirmek için ossutil komut satırı aracındaki query-vectors komutunu kullanabilirsiniz.
Hata kodları
|
Hata kodu |
HTTP durum kodu |
Açıklama |
|
VectorIndexParameterInvalid |
400 |
İstek geçersiz vektör dizini parametreleri içeriyor. |
|
MalformedJson |
400 |
İstek gövdesinin JSON biçimi geçersiz. |
|
AccessDenied |
403 |
Bu hatanın olası nedenleri şunlardır:
|
|
NoSuchVectorIndex |
404 |
Belirtilen vektör dizini mevcut değil. |
|
QpsLimitExceeded |
503 |
İstek hızı QPS sınırını aştı. İstekleriniz kısıtlanıyor. |