全部产品
Search
文档中心

DashVector:ambil dokumen

更新时间:Mar 12, 2026

Collection.query() mencari dokumen dalam koleksi DashVector yang mirip dengan vektor tertentu atau vektor dari dokumen yang telah disimpan. Anda juga dapat mengambil dokumen hanya berdasarkan filter metadata.

Mode kueri

Collection.query() mendukung lima mode kueri tergantung pada parameter yang diberikan:

ModeParameter wajibDeskripsi
Vector searchvectorTemukan dokumen yang paling dekat dengan vektor padat tertentu
Primary key searchidTemukan dokumen yang paling dekat dengan vektor dari dokumen yang sudah ada
Filtered vector searchvector atau id + filterGabungkan pencarian kemiripan dengan penyaringan metadata
Hybrid searchvector + sparse_vectorGabungkan vektor padat dan vektor jarang untuk pencarian semantik yang memperhatikan kata kunci
Match queryfilter onlyAmbil dokumen berdasarkan filter metadata tanpa peringkat kemiripan
Jika baik vector maupun id tidak ditentukan, query() melakukan match query hanya menggunakan filter kondisional.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Signature API

Collection.query(
    vector: Optional[Union[List[Union[int, float]], np.ndarray]] = None,
    id: Optional[str] = None,
    topk: int = 10,
    filter: Optional[str] = None,
    include_vector: bool = False,
    partition: Optional[str] = None,
    output_fields: Optional[List[str]] = None,
    sparse_vector: Optional[Dict[int, float]] = None,
    async_req: False
) -> DashVectorResponse

Parameter permintaan

ParameterTipeBawaanDeskripsi
vectorOptional[Union[List[Union[int, float]], np.ndarray]]NoneVektor padat untuk pencarian kemiripan.
idOptional[str]NoneKunci primary dari dokumen yang sudah ada. Pencarian menggunakan vektor dokumen tersebut.
topkint10Jumlah maksimum hasil yang dikembalikan, diurutkan berdasarkan kemiripan.
filterOptional[str]NoneFilter kondisional menggunakan sintaks klausa WHERE SQL. Lihat Penyaringan kondisional.
include_vectorboolFalseApakah data vektor disertakan dalam respons.
partitionOptional[str]NoneNama partisi. Membatasi cakupan pencarian ke partisi tertentu.
output_fieldsOptional[List[str]]NoneBidang yang dikembalikan. Secara bawaan, semua bidang dikembalikan.
sparse_vectorOptional[Dict[int, float]]NoneVektor jarang untuk pencarian semantik yang memperhatikan kata kunci. Setiap kunci adalah indeks dimensi, dan setiap nilai adalah bobotnya.
async_reqboolFalseApakah mode asinkron diaktifkan.

Respons

query() mengembalikan objek DashVectorResponse:

BidangTipeDeskripsiContoh
codeintKode status. 0 menunjukkan keberhasilan. Lihat Kode status.0
messagestrPesan status.success
request_idstrPengidentifikasi unik permintaan.19215409-ea66-4db9-8764-26ce2eb5bb99
outputList[<code data-tag="code" class="inline-code___exakR" id="code_d6787a3c">Doc</code>]Hasil pencarian kemiripan.--

Contoh

Semua contoh di bawah ini menggunakan konfigurasi client berikut. Ganti placeholder dengan nilai aktual Anda:

PlaceholderDeskripsi
YOUR_API_KEYKunci API Anda dari konsol DashVector
YOUR_CLUSTER_ENDPOINTURL titik akhir kluster Anda
import dashvector
import numpy as np

client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)

# Dapatkan koleksi target
collection = client.get(name='quickstart')
Buat koleksi quickstart dan masukkan dokumen sebelum menjalankan contoh-contoh ini. Lihat Buat koleksi dan Masukkan dokumen.

Cari berdasarkan vektor

Berikan vektor padat untuk menemukan dokumen yang paling mirip.

ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4]
)
# Periksa apakah metode query berhasil dipanggil.
if ret:
    print('query success')
    print(len(ret))
    for doc in ret:
        print(doc)
        print(doc.id)
        print(doc.vector)
        print(doc.fields)

Untuk menyesuaikan set hasil, tentukan topk, output_fields, dan include_vector:

ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],
    topk=100,
    output_fields=['name', 'age'],  # Hanya bidang name dan age yang perlu dikembalikan.
    include_vector=True
)

Cari berdasarkan kunci primary

Gunakan parameter id untuk mencari menggunakan vektor dokumen yang tersimpan, tanpa memberikan nilai vektor secara langsung.

ret = collection.query(
    id='1'
)
# Periksa apakah metode query berhasil dipanggil.
if ret:
    print('query success')
    print(len(ret))
    for doc in ret:
        print(doc)
        print(doc.id)
        print(doc.vector)
        print(doc.fields)

Gabungkan id dengan topk dan output_fields seperti pada pencarian berbasis vektor:

ret = collection.query(
    id='1',
    topk=100,
    output_fields=['name', 'age'],  # Hanya bidang name dan age yang perlu dikembalikan.
    include_vector=True
)

Cari dengan filter kondisional

Tambahkan parameter filter untuk mempersempit hasil berdasarkan metadata. Filter mengikuti sintaks klausa WHERE SQL.

# Lakukan pencarian kemiripan menggunakan vektor atau kunci primary dan filter kondisional.
ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],   # Tentukan vektor untuk pencarian. Atau, Anda dapat menentukan kunci primary untuk pencarian.
    topk=100,
    filter='age > 18',             # Tentukan filter kondisional untuk melakukan match query pada dokumen yang nilai bidang agenya lebih besar dari 18.
    output_fields=['name', 'age'], # Hanya bidang name dan age yang perlu dikembalikan.
    include_vector=True
)
Tip: Gabungkan filter dengan id alih-alih vector untuk menyaring hasil dari pencarian berbasis kunci primary.

Pencarian hibrida dengan vektor padat dan vektor jarang

Gabungkan vektor padat dengan vektor jarang untuk melakukan pencarian semantik yang memperhatikan kata kunci. Vektor jarang merepresentasikan bobot kata kunci yang melengkapi penyematan padat.

# Lakukan pencarian kemiripan menggunakan vektor padat dan vektor jarang.
ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],   # Tentukan vektor untuk pencarian.
    sparse_vector={1: 0.3, 20: 0.7}
)

Lihat Pencarian semantik yang memperhatikan kata kunci untuk detail konfigurasi.

Match query hanya dengan filter

Abaikan baik vector maupun id untuk mengambil dokumen hanya berdasarkan kondisi metadata, tanpa peringkat kemiripan.

# Lakukan match query hanya menggunakan filter kondisional tanpa menentukan vektor atau kunci primary.
ret = collection.query(
    topk=100,
    filter='age > 18',             # Tentukan filter kondisional untuk melakukan match query pada dokumen yang nilai bidang agenya lebih besar dari 18.
    output_fields=['name', 'age'], # Hanya bidang name dan age yang perlu dikembalikan.
    include_vector=True
)

Langkah selanjutnya