All Products
Search
Document Center

OpenSearch:Kueri berbasis vektor jarang

Last Updated:Jun 26, 2025

URL

/vector-service/query

  • Contoh URL menghilangkan informasi seperti parameter dalam header permintaan dan metode pengkodean.

  • Contoh URL juga menghilangkan titik akhir yang digunakan untuk terhubung ke instance OpenSearch.

  • Untuk informasi lebih lanjut tentang definisi, penggunaan, dan nilai contoh dari semua parameter permintaan yang digabungkan dalam URL di atas, lihat bagian "Parameter Permintaan" dari topik ini.

Protokol

HTTP

Metode permintaan

POST

Format yang didukung

JSON

Tanda tangan permintaan

Tanda tangan permintaan dapat dihitung menggunakan parameter yang dijelaskan dalam tabel berikut. Tanda tangan permintaan disimpan dalam header authorization.

Parameter

Tipe

Deskripsi

accessUserName

string

Nama pengguna. Anda dapat melihat nama pengguna di bagian API Endpoint pada halaman Detail Instance.

accessPassWord

string

Kata sandi. Anda dapat memodifikasi kata sandi di bagian API Endpoint pada halaman Detail Instance.

import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;

public class GenerateAuthorization {

    public static void main(String[] args) throws Exception {
        String accessUserName = "username";
        String accessPassWord = "password";
        String realmStr = "" + accessUserName + ":" + accessPassWord + "";
        String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
        System.out.println(authorization);
    }
}

Format valid untuk nilai header authorization:

cm9vdDp******mdhbA==

Anda harus menambahkan awalan Basic saat menentukan header authorization dalam permintaan HTTP.

Contoh:

authorization: Basic cm9vdDp******mdhbA==

Parameter permintaan

  • SearchRequest

Parameter

Deskripsi

Nilai default

Tipe

Diperlukan

tableName

Nama tabel yang akan di-query.

Tidak ada nilai default

string

Ya

indexName

Nama indeks vektor padat.

Tidak ada nilai default

string

Ya

vector

Data vektor padat yang akan di-query.

Tidak ada nilai default

list[float]

Ya

sparseData

Data vektor jarang yang akan di-query.

Tidak ada nilai default

SparseData

Ya

vectorCount

Jumlah vektor yang ditentukan dalam parameter vector.

1

int

Tidak

namespace

Namespace dari data vektor.

""

string

Tidak

topK

Jumlah hasil yang akan dikembalikan.

100

int

Tidak

includeVector

Menentukan apakah akan mengembalikan informasi vektor dalam dokumen.

false

bool

Tidak

outputFields

Bidang-bidang yang akan dikembalikan.

[]

list[string]

Tidak

order

Urutan hasil diurutkan. Nilai ASC menunjukkan urutan naik. Nilai DESC menunjukkan urutan turun.

ASC

string

Tidak

searchParams

Parameter yang digunakan untuk meng-query data.

""

string

Tidak

filter

Ekspresi filter.

""

string

Tidak

scoreThreshold

Ambang batas skor yang digunakan untuk menyaring hasil. Jika skor adalah jarak Euclidean, hanya dokumen dengan jarak Euclidean kurang dari nilai parameter scoreThreshold yang dikembalikan. Jika skor adalah produk dalam, hanya dokumen dengan produk dalam lebih besar dari nilai parameter scoreThreshold yang dikembalikan.

Secara default, hasil tidak difilter.

float

Tidak

sort

Ekspresi sortir.

""

string

Tidak

  • SparseData

Parameter

Deskripsi

Nilai default

Tipe

Diperlukan

count

Jumlah elemen dalam setiap vektor jarang.

Jika hanya satu vektor jarang yang ditentukan, nilai parameter ini adalah jumlah indeks secara default.

list[int]

Tidak

indices

Indeks elemen dalam urutan menaik.

Tidak ada nilai default

list[int]

Ya

values

Nilai elemen dalam urutan yang sama dengan indeks.

Tidak ada nilai default

list[float]

Ya

Dalam Edisi OpenSearch Vector Search, dua bidang multi-nilai independen digunakan untuk merepresentasikan subskrip dan nilai vektor jarang. Jumlah nilai harus sama di kedua bidang. Posisi nilai dalam kedua bidang memiliki korespondensi satu-satu.

Sebagai contoh, vektor jarang (0, 0.5), (100, 0.9), (40, 0.3), (50, 0.7), (20, 0.6) ada. Kode berikut menunjukkan bidang multi-nilai dari vektor jarang:

{
  "indices": [0, 100, 40, 50, 20],
  "values": [0.5, 0.9, 0.3, 0.7, 0.6]
}

Saat Anda menulis atau meng-query data, subskrip harus diatur dalam urutan menaik, dan nilai perlu disesuaikan berdasarkan subskrip. Kode berikut menunjukkan bidang multi-nilai yang telah disesuaikan:

{
  "indices": [0, 20, 40, 50, 100],
  "values": [0.5, 0.6, 0.3, 0.7, 0.9]
}

Bobot kueri

Dalam kueri hibrida, skor akhir dari dokumen yang sama adalah jumlah dari jarak vektor padat dan jarak vektor jarang. Jika Anda ingin mengonfigurasi bobot berbeda untuk vektor jarang dan vektor padat, Anda dapat melakukan konfigurasi berdasarkan kode berikut:

{
    "vector": [v * weight for v in dense_vector],
    "sparseData": {
        "indices": sparse_data["indices"],
        "values": [v * (1 - weight) for v in sparse_data["values"]]
    }
}

Permintaan contoh

{
    "tableName": "in0",
    "indexName": "vector",
    "vector": [
        0.1,
        0.2,
        0.3,
        0.4,
        0.5
    ],
    "sparseData": {
        "indices": [
            0,
            2
        ],
        "values": [
            1.2,
            2.4
        ]
    },
    "topK": 2,
    "order": "DESC"
}

Parameter respons

Parameter

Deskripsi

Tipe

result

Hasil yang dikembalikan.

list[Item]

totalCount

Jumlah hasil.

int

totalTime

Waktu respons. Unit: milidetik.

float

errorCode

Kode kesalahan yang dikembalikan jika permintaan gagal.

int

errorMsg

Pesan kesalahan yang dikembalikan jika permintaan gagal.

string

Item

Parameter

Deskripsi

Tipe

score

Skor vektor.

float

fields

Bidang dan nilai yang sesuai.

map<string, FieldType>

vector

Nilai vektor.

list[float]

id

Nilai kunci utama. Nilainya adalah tipe data yang didefinisikan.

FieldType

namespace

Namespace dari vektor. Parameter ini dikembalikan jika namespace dikonfigurasikan untuk vektor.

string

Contoh

{
    "totalCount": 50,
    "result": [
        {
            "id": 99,
            "score": 0.18588095903396607,
            "__source__": 1,
            "fields": {
                "content": "Zhonghao Cat 6 Network Cable RJ45 Cat 6 Gigabit 8-Core Twisted Pair Jumper Broadband Monitoring Home Network Cable Finished Cable"
            }
        }
    ],
    "totalTime": 4.057
}