All Products
Search
Document Center

Object Storage Service:QueryVectorsFusion

Last Updated:Sep 23, 2026

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.

Catatan

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

oss: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.

  • Pengurutan didukung untuk bidang bertipe long, double, bool, string (dengan exactMatch diaktifkan), dan ip, serta array-nya.

  • Pengurutan berdasarkan skor relevansi _score didukung, tetapi _score hanya mendukung urutan menurun (desc).

[{"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

$and

Logika AND. Semua sub-kondisi (klausa) harus terpenuhi. Mendukung boost (bobot) dan minShouldMatch (jumlah minimum kecocokan).

Operator logika

$or

Logika OR. Salah satu sub-kondisi dapat terpenuhi. Mendukung boost dan minShouldMatch.

Operator logika

$nor

Logika NOR. Tidak ada sub-kondisi (klausa) yang terpenuhi. Tidak mendukung boost.

Operator logika

$eq / $in / $exists

Masing-masing menunjukkan sama dengan, dalam himpunan, dan bidang ada. Mendukung boost (Anda dapat menggunakan bentuk objek untuk membawa boost).

Operator skalar

$ne / $nin

Masing-masing menunjukkan tidak sama dengan dan tidak dalam himpunan.

Operator skalar

$gt / $gte / $lt / $lte

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 $range untuk performa yang lebih baik.

Operator skalar

$range

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

$textMatch

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

$textMatchPhrase

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

$geoDistance

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

$geoBoundingBox

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

$geoPolygon

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

$matchAll

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 } }
Catatan

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

Catatan

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:

  • Permintaan tidak menyertakan informasi otentikasi yang diperlukan.

  • Anda tidak memiliki izin yang diperlukan untuk melakukan operasi ini.