Gunakan operasi QueryVectorsFusion untuk mengkueri indeks vektor dalam mode Fusion. Operasi ini mendukung pencarian vektor, filtering skalar, pencarian teks penuh, dan fusi recall multi-cabang.
Mode Fusion saat ini berada dalam pratinjau undangan dan hanya tersedia di wilayah Indonesia (Jakarta). Untuk mengambil vektor dari indeks dalam Mode Standar, lihat QueryVectors.
Catatan penggunaan
-
QueryVectorsFusion digunakan untuk mengkueri indeks dalam mode Fusion. Untuk melakukan pencarian kemiripan vektor pada indeks dalam mode Standar, gunakan operasi QueryVectors.
-
Berbeda dengan QueryVectors yang mengembalikan hasil berdasarkan jarak, QueryVectorsFusion mengembalikan hasil berdasarkan skor relevansi. Skor yang lebih tinggi menunjukkan relevansi yang lebih tinggi.
-
Parameter knn, query, dan retriever masing-masing bersesuaian dengan pencarian vektor, filtering skalar dan teks penuh, serta fusi recall multi-cabang. Anda dapat menggabungkannya sesuai kebutuhan. Saat menggunakan retriever, permintaan hanya boleh mencakup parameter indexName, limit, partitionKeys, returnMetadata, dan returnMetadataFields.
-
Parameter nextToken mendukung pagination hanya dalam skenario pencarian berbasis query saja (tanpa knn atau retriever).
Izin
Secara default, Akun Alibaba Cloud memiliki izin penuh, sedangkan Pengguna RAM atau Peran RAM tidak memiliki izin apa pun. Pemilik Akun Alibaba Cloud atau administrator harus memberikan izin melalui kebijakan RAM atau kebijakan bucket.
|
API |
Action |
Deskripsi |
|
QueryVectorsFusion |
|
Mengkueri indeks vektor dalam mode Fusion. |
Sintaksis permintaan
POST /?queryVectorsFusion HTTP/1.1
Host: examplebucket-123***456.cn-hangzhou-internal.oss-vectors.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Content-type: application/json
{
"indexName": "string",
"knn": [
{
"field": "string",
"queryVector": [0.1],
"topK": 10
}
],
"returnMetadata": true
}
Header permintaan
Operasi ini hanya menggunakan header permintaan umum. Untuk informasi selengkapnya, lihat Header HTTP umum.
Parameter permintaan
|
Parameter |
Tipe |
Wajib |
Deskripsi |
Contoh |
|
indexName |
String |
Ya |
Nama indeks yang akan dikueri. |
vectorindex1 |
|
knn |
Array of objects |
Tidak |
Konfigurasi pencarian vektor. Mendukung pencarian approximate nearest neighbor (ANN) pada satu atau beberapa bidang vektor, maksimal 3. Untuk sub-parameter, lihat bagian "parameter knn" di bawah. |
- |
|
query |
Object |
Tidak |
Kondisi filtering skalar dan pencarian teks penuh, dinyatakan menggunakan operator filter. Untuk daftar operator, lihat bagian "Operator filter" di bawah. |
- |
|
retriever |
Object |
Tidak |
Konfigurasi fusi recall multi-cabang, yang menggabungkan dan mengurutkan ulang hasil dari beberapa cara pengambilan menggunakan algoritma fusi. Untuk sub-parameter, lihat bagian "parameter retriever" di bawah. Saat menggunakan retriever, permintaan hanya boleh mencakup indexName, limit, partitionKeys, returnMetadata, dan returnMetadataFields. |
- |
|
returnMetadata |
Boolean |
Tidak |
Menentukan apakah metadata vektor akan dikembalikan. Nilai default-nya adalah false. |
true |
|
returnMetadataFields |
Array of strings |
Tidak |
Nama bidang metadata yang akan dikembalikan. Jika parameter ini tidak ditentukan, semua bidang metadata akan dikembalikan. Bidang vektor tidak dapat ditentukan. |
["price","tag"] |
|
partitionKeys |
Array of strings |
Tidak |
Nilai kunci partisi. Parameter ini membatasi cakupan pencarian ke partisi yang ditentukan, sehingga meningkatkan efisiensi pencarian. Hanya tersedia jika kunci partisi telah didefinisikan dalam skema indeks. Maksimal 512 elemen didukung, dengan ukuran total maksimal 4 KB. |
["user_1"] |
|
limit |
Integer |
Tidak |
Jumlah maksimum hasil yang dikembalikan. Nilai default-nya adalah 10. |
10 |
|
nextToken |
String |
Tidak |
Token pagination. Pagination hanya didukung dalam skenario pencarian berbasis query saja (tanpa knn atau retriever). Masukkan nextToken yang dikembalikan oleh permintaan sebelumnya untuk mendapatkan halaman berikutnya. |
CAESABgB**** |
|
sort |
Array of objects |
Tidak |
Bidang pengurutan. Maksimal 3 bidang dapat ditentukan.
|
[{"field":"price","order":"asc"}] |
Parameter knn
knn merupakan array objek. Setiap elemen merepresentasikan pencarian approximate nearest neighbor (ANN) pada bidang vektor, dengan maksimal tiga elemen. Sub-parameter-nya sebagai berikut:
|
Parameter |
Tipe |
Wajib |
Deskripsi |
Contoh |
|
field |
String |
Ya |
Nama bidang vektor yang akan dikueri. Harus merupakan bidang dengan tipe=vector dalam skema. |
vector_1 |
|
queryVector |
Array of floats |
Ya |
Vektor kueri. Dimensinya harus konsisten dengan dimensi bidang vektor yang ditentukan oleh field. |
[0.1, 0.2, 0.3] |
|
topK |
Integer |
Tidak |
Jumlah tetangga terdekat yang dikembalikan. Nilai default-nya adalah 10. |
10 |
|
filter |
Object |
Tidak |
Kondisi pre-filter untuk pencarian vektor. Kondisi skalar diterapkan terlebih dahulu untuk melakukan filtering, lalu dilanjutkan dengan pencarian vektor. Untuk operator filter, lihat bagian "Operator filter" di bawah. |
- |
|
numCandidates |
Integer |
Tidak |
Ukuran set kandidat untuk pencarian vektor. Nilainya harus tidak kurang dari topK. Nilai default-nya sama dengan topK. Meningkatkan nilai ini secara tepat dapat meningkatkan kualitas recall tetapi menambah beban pencarian. Jika Anda belum berpengalaman dalam menyetel parameter ini, kami sarankan menggunakan nilai default sisi server. |
100 |
|
boost |
Float |
Tidak |
Koefisien bobot untuk skor dari cara pencarian vektor ini. Nilai default-nya adalah 1.0. |
1.0 |
Parameter retriever
retriever digunakan untuk fusi recall multi-cabang. Komponen ini terdiri atas retriever majemuk yang menyematkan retriever sederhana. Jumlah total retriever minimal satu dan maksimal tiga. Penyematan retriever majemuk di dalam retriever majemuk lain tidak didukung dalam rilis ini.
-
Retriever majemuk: menggabungkan hasil dari beberapa retriever sederhana menggunakan algoritma. Nilai yang valid:
-
rrf (Reciprocal Rank Fusion): menggabungkan hasil dengan memberi bobot pada kebalikan peringkat hasil dari setiap cabang. Parameter yang didukung:
-
k: konstanta penghalusan peringkat. Nilai valid: 1 hingga 65536. Nilai default-nya adalah 50. -
windowSize: ukuran jendela hasil dari setiap cabang yang berpartisipasi dalam fusi. Nilai default-nya adalah 100. -
weight: bobot retriever ini. Nilainya harus tidak kurang dari 0. Nilai default-nya adalah 1,0.
-
-
weight (fusi berbobot): menormalisasi skor dari setiap cabang lalu menghitung jumlah tertimbang. Parameter yang didukung:
-
weight: bobot retriever ini. Nilai default-nya adalah 1,0. -
normalizer: metode normalisasi skor. Nilai valid: none (tanpa normalisasi), minMax (normalisasi min-max), dan l2 (normalisasi L2). Nilai default-nya adalah none. -
windowSize: ukuran jendela hasil dari setiap cabang yang berpartisipasi dalam fusi.
-
-
-
Retriever sederhana: sumber tunggal untuk fusi. Nilai yang valid:
-
knn: satu cara pencarian vektor. Sub-parameter-nya sama seperti bagian "parameter knn" di atas.
-
query: satu cara pencarian skalar dan teks penuh. Sub-parameter-nya sama seperti bagian "Operator filter" di bawah.
-
Operator filter
Dalam query dan filter, kondisi filtering skalar dan pencarian teks penuh dinyatakan menggunakan operator filter. Operator yang didukung sebagai berikut:
|
Operator |
Deskripsi |
Tipe yang berlaku |
|
|
Logika AND. Semua sub-kondisi (klausa) harus terpenuhi. Mendukung boost (bobot) dan minShouldMatch (jumlah minimum kecocokan). |
Operator logika |
|
|
Logika OR. Salah satu sub-kondisi dapat terpenuhi. Mendukung boost dan minShouldMatch. |
Operator logika |
|
|
Logika NOR. Tidak ada sub-kondisi (klausa) yang terpenuhi. Tidak mendukung boost. |
Operator logika |
|
|
Masing-masing menunjukkan sama dengan, dalam himpunan, dan bidang ada. Mendukung boost (Anda dapat menggunakan bentuk objek untuk membawa boost). |
Operator skalar |
|
|
Masing-masing menunjukkan tidak sama dengan dan tidak dalam himpunan. |
Operator skalar |
|
|
Masing-masing menunjukkan lebih besar dari, lebih besar dari atau sama dengan, lebih kecil dari, dan lebih kecil dari atau sama dengan. Untuk filtering rentang dua sisi, kami sarankan menggunakan operator |
Operator skalar |
|
|
Filtering rentang. Nyatakan rentang dengan menggabungkan gt/gte/lt/lte. Mendukung boost. gt dan gte saling eksklusif, demikian pula lt dan lte saling eksklusif. |
Operator skalar |
|
|
Pencocokan tokenisasi (pencarian teks penuh). Parameter yang didukung: operator (opsional, and/or, default or), minShouldMatch, dan boost. Teks pencarian maksimal 512 byte. Hanya berlaku untuk bidang string dengan tokenisasi (text) diaktifkan. |
Operator teks penuh |
|
|
Pencocokan frasa (pencarian teks penuh), yang mengharuskan istilah yang cocok mempertahankan urutan dan kedekatan yang sama. Parameter yang didukung: boost. Teks pencarian maksimal 512 byte. Hanya berlaku untuk bidang string dengan tokenisasi (text) diaktifkan. |
Operator teks penuh |
|
|
Pencarian berdasarkan rentang jarak, mencocokkan dokumen dalam radius tertentu yang berpusat pada suatu titik. Parameter yang didukung: centerPoint (koordinat pusat, string dalam format "latitude,longitude"), distanceInMeter (radius dari pusat, dalam meter, lebih besar dari 0), dan boost. Hanya berlaku untuk bidang geoPoint. |
Operator geografis |
|
|
Pencarian berdasarkan area persegi panjang, mencocokkan dokumen di dalam persegi panjang tersebut. Parameter yang didukung: topLeft (koordinat sudut kiri atas) dan bottomRight (koordinat sudut kanan bawah), keduanya berupa string dalam format "latitude,longitude"; boost juga didukung. Hanya berlaku untuk bidang geoPoint. |
Operator geografis |
|
|
Pencarian berdasarkan area poligon, mencocokkan dokumen di dalam poligon tersebut. Parameter yang didukung: points (array koordinat vertex poligon, masing-masing berupa string dalam format "latitude,longitude", maksimal 16 titik) dan boost. Hanya berlaku untuk bidang geoPoint. |
Operator geografis |
|
|
Mencocokkan semua dokumen. |
Operator match-all |
Contoh sintaksis operator
Contoh berikut menunjukkan sintaksis setiap operator berdasarkan kategorinya, termasuk bentuk default dan bentuk dengan parameter kustom. Ganti field_name dalam contoh dengan nama bidang aktual.
Operator logika ($and / $or / $nor)
// $and: semua sub-kondisi harus terpenuhi; mendukung boost
{
"$and": {
"clauses": [
{ "title": { "$eq": "马拉松" } },
{ "year": { "$gte": 2020 } }
],
"boost": 2.0
}
}
// $or: salah satu sub-kondisi dapat terpenuhi; mendukung boost dan minShouldMatch
{
"$or": {
"clauses": [
{ "title": { "$eq": "马拉松" } },
{ "year": { "$gte": 2020 } }
],
"boost": 2.0,
"minShouldMatch": "50%"
}
}
// $nor: tidak ada sub-kondisi yang terpenuhi; tidak mendukung boost
{
"$nor": {
"clauses": [
{ "category": { "$eq": "drama" } },
{ "year": { "$gte": 2020 } }
]
}
}
Operator kesamaan / himpunan / keberadaan ($eq / $ne / $in / $nin / $exists)
// $eq: sama dengan; mendukung bentuk ringkas dan bentuk objek (bentuk objek dapat membawa boost)
{ "field_name": { "$eq": "documentary" } }
{ "field_name": { "$eq": { "value": "documentary", "boost": 2.0 } } }
// $ne: tidak sama dengan (semantik negasi; tidak mendukung boost)
{ "field_name": { "$ne": "documentary" } }
// $in / $nin: dalam / tidak dalam himpunan (maksimal 1024 elemen; $in dapat membawa boost)
{ "field_name": { "$in": ["comedy", "documentary"] } }
{ "field_name": { "$in": { "value": ["comedy", "documentary"], "boost": 2.0 } } }
{ "field_name": { "$nin": ["comedy", "documentary"] } }
// $exists: apakah bidang tersebut ada
{ "field_name": { "$exists": true } }
{ "field_name": { "$exists": { "value": true, "boost": 2.0 } } }
Operator rentang ($gt / $gte / $lt / $lte / $range)
// $gt / $gte / $lt / $lte: perbandingan satu sisi, bentuk ringkas
{ "field_name": { "$gt": 6 } }
{ "field_name": { "$gte": 6 } }
// $range: rentang dua sisi; mendukung boost (disarankan untuk performa yang lebih baik)
// Batasan: gt dan gte saling eksklusif, lt dan lte saling eksklusif,
// dan $range tidak boleh dicampur dengan $gt/$gte/$lt/$lte pada bidang yang sama
{
"field_name": {
"$range": {
"gte": 6,
"lt": 10,
"boost": 2.0
}
}
}
Operator pencarian teks penuh ($textMatch / $textMatchPhrase)
// $textMatch: pencocokan tokenisasi, bentuk default
{ "field_name": { "$textMatch": "a b c" } }
// $textMatch: dengan parameter kustom
{
"field_name": {
"$textMatch": {
"value": "a b c",
"operator": "or",
"minShouldMatch": "75%",
"boost": 2.0
}
}
}
// $textMatchPhrase: pencocokan frasa, bentuk default
{ "field_name": { "$textMatchPhrase": "a b c" } }
// $textMatchPhrase: dengan parameter kustom (hanya boost yang didukung)
{
"field_name": {
"$textMatchPhrase": {
"value": "a b c",
"boost": 2.0
}
}
}
Operator geografis ($geoDistance / $geoBoundingBox / $geoPolygon)
// $geoDistance: pencarian berdasarkan rentang jarak
{
"field_name": {
"$geoDistance": {
"centerPoint": "5,5",
"distanceInMeter": 10000,
"boost": 2.0
}
}
}
// $geoBoundingBox: pencarian berdasarkan area persegi panjang
{
"field_name": {
"$geoBoundingBox": {
"topLeft": "10,0",
"bottomRight": "0,10",
"boost": 2.0
}
}
}
// $geoPolygon: pencarian berdasarkan area poligon (maksimal 16 vertex)
{
"field_name": {
"$geoPolygon": {
"points": ["0,0", "5,5", "5,0"],
"boost": 2.0
}
}
}
Operator match-all ($matchAll)
// $matchAll: mencocokkan semua dokumen
{ "$matchAll": {} }
// dengan boost
{ "$matchAll": { "boost": 2.0 } }
Tipe bidang yang berbeda mendukung operator filter yang berbeda. Misalnya, bidang numerik (long dan double) mendukung operator perbandingan dan rentang; kemampuan pencocokan eksak (exactMatch) pada bidang string mendukung operator kesamaan; operator teks penuh didukung setelah tokenisasi diaktifkan; bidang geoPoint mendukung operator geografis. Gunakan operator berdasarkan kemampuan yang dikonfigurasi untuk setiap bidang dalam skema indeks.
Header respons
Operasi ini hanya menggunakan header respons umum. Untuk informasi selengkapnya, lihat Header HTTP umum.
Elemen respons
|
Elemen |
Tipe |
Deskripsi |
Contoh |
|
vectors |
Array of objects |
Daftar hasil vektor yang ditemukan oleh pencarian. |
- |
|
key |
String |
Identifikasi unik vektor. Node induk: vectors |
key1 |
|
score |
Float |
Skor relevansi. Skor yang lebih tinggi menunjukkan relevansi yang lebih tinggi. Node induk: vectors |
0.87 |
|
metadata |
Object |
Metadata vektor. Dikembalikan hanya jika returnMetadata=true. Anda dapat menggunakan returnMetadataFields untuk menentukan bidang yang akan dikembalikan. Node induk: vectors |
- |
|
nextToken |
String |
Token pagination. Dikembalikan hanya dalam skenario pencarian berbasis query saja dan digunakan untuk mendapatkan halaman hasil berikutnya. |
CAESABgB**** |
Contoh
queryVector dan nilai vektor dalam contoh berikut hanya menggambarkan struktur dan telah dipersingkat. Dalam pemanggilan aktual, panjang vektor harus persis sesuai dengan dimension yang dideklarasikan saat indeks dibuat. Jika tidak, error parameter tidak valid akan dikembalikan.
Pencarian vektor jalur tunggal
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "docindex",
"knn": {
"field": "content_vector",
"queryVector": [0.12, 0.53, 0.08, 0.91],
"topK": 100
},
"limit": 10
}
Pencarian vektor dengan pre-filtering (pencarian hibrida)
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "vectorindex1",
"knn": [
{
"field": "vector_1",
"queryVector": [0.1, 0.2, 0.3],
"topK": 10,
"filter": {
"price": { "$gte": 100, "$lte": 500 }
}
}
],
"returnMetadata": true,
"returnMetadataFields": ["price", "tag"],
"limit": 10
}
Contoh respons
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Content-Type: application/json
Server: AliyunOSS
{
"vectors": [
{
"key": "key1",
"score": 0.87,
"metadata": {
"price": 199,
"tag": "shoes"
}
},
{
"key": "key2",
"score": 0.72,
"metadata": {
"price": 320,
"tag": "shoes"
}
}
]
}
Pencarian hanya skalar (tanpa vektor)
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "productindex",
"query": {
"$and": {
"clauses": [
{ "category": { "$in": { "value": ["phone", "tablet"] } } },
{ "price": { "$range": { "gte": 1000, "lte": 5000 } } },
{ "stock": { "$gt": 0 } }
]
}
},
"sort": [{ "price": { "order": "asc" } }],
"limit": 20,
"returnMetadata": true,
"returnMetadataFields": ["title", "brand", "price", "stock"]
}
Pencarian teks penuh ($textMatch)
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "kbindex",
"query": {
"body": {
"$textMatch": {
"value": "wireless noise-canceling headphones",
"operator": "or",
"minShouldMatch": "2",
"boost": 1.0
}
}
},
"limit": 10,
"returnMetadata": true,
"returnMetadataFields": ["title", "doc_id"]
}
Pencarian geografis ($geoDistance)
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "poiindex",
"query": {
"location": {
"$geoDistance": {
"centerPoint": "31.23,121.47",
"distanceInMeter": 5000,
"boost": 1.0
}
}
},
"sort": [{ "rating": { "order": "desc" } }],
"limit": 20,
"returnMetadata": true,
"returnMetadataFields": ["name", "rating", "city"]
}
Pencarian hibrida: fusi RRF
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "productindex",
"retriever": {
"rrf": {
"k": 50,
"windowSize": 100,
"retrievers": [
{
"retriever": {
"knn": {
"field": "text_vector",
"queryVector": [0.12, 0.53, 0.08],
"topK": 100
}
},
"weight": 2.0
},
{
"retriever": {
"simple": {
"query": {
"title": { "$textMatch": { "value": "wireless headphones" } }
}
}
},
"weight": 0.5
}
]
}
},
"limit": 10,
"returnMetadata": true,
"returnMetadataFields": ["title", "brand"]
}
Contoh respons
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Content-Type: application/json
Server: AliyunOSS
{
"vectors": [
{
"key": "product-001",
"score": 0.04755,
"metadata": {
"title": "Wireless Noise-Canceling Headphones",
"brand": "AliBrand"
}
},
{
"key": "product-007",
"score": 0.03846,
"metadata": {
"title": "Over-Ear Headphones",
"brand": "NovaBrand"
}
}
]
}
Pencarian hibrida: fusi berbobot ternormalisasi
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "productindex",
"retriever": {
"weight": {
"windowSize": 100,
"retrievers": [
{
"retriever": {
"knn": {
"field": "text_vector",
"queryVector": [0.12, 0.53, 0.08],
"topK": 100
}
},
"weight": 0.7,
"normalizer": "minMax"
},
{
"retriever": {
"simple": {
"query": {
"title": { "$textMatch": { "value": "wireless headphones" } }
}
}
},
"weight": 0.3,
"normalizer": "minMax"
}
]
}
},
"limit": 10,
"returnMetadata": true,
"returnMetadataFields": ["title", "brand"]
}
Contoh respons
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Content-Type: application/json
Server: AliyunOSS
{
"vectors": [
{
"key": "product-001",
"score": 0.23056,
"metadata": {
"title": "Wireless Noise-Canceling Headphones",
"brand": "AliBrand"
}
}
]
}
Pagination (nextToken)
Contoh permintaan
POST /?queryVectorsFusion 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
{
"indexName": "kbindex",
"query": {
"$and": {
"clauses": [
{ "title": { "$textMatch": { "value": "vector database" } } },
{ "year": { "$range": { "gte": 2024 } } }
]
}
},
"nextToken": "CAESCG15aC1mESgEeKaGA",
"limit": 50,
"returnMetadata": true,
"returnMetadataFields": ["title", "year"]
}
Kode error
|
Kode error |
Kode status HTTP |
Deskripsi |
|
MalformedJson |
400 |
Badan permintaan tidak dalam format JSON yang valid. |
|
InvalidArgument |
400 |
Parameter pencarian yang diberikan dalam permintaan tidak valid. Contohnya, dimensi vektor kueri tidak sesuai dengan indeks, atau operator filter yang tidak didukung oleh bidang tersebut digunakan. |
|
NoSuchVectorIndex |
404 |
Indeks vektor yang ditentukan tidak ada. |
|
AccessDenied |
403 |
Akses ditolak. Kemungkinan penyebab:
|