Tujuan Search API adalah untuk menemukan Objek Data yang mirip dengan kueri tertentu dan menampilkan daftar hasil yang diberi peringkat (berdasarkan kemiripan). Search API juga mendukung pemfilteran.
Search API menawarkan berbagai cara untuk menelusuri Objek Data: penelusuran vektor, penelusuran teks lengkap, dan penelusuran semantik. Selain itu, beberapa penelusuran dari jenis apa pun dapat digabungkan untuk mencapai penelusuran hybrid.
Penelusuran vektor
Penelusuran vektor memungkinkan Anda memberikan vektor kueri Anda sendiri. Ini adalah metode
yang diperlukan untuk menelusuri kolom sematan yang tidak memiliki embedding-config.
Jika beberapa kolom search_vector disediakan, hasil akan digabungkan menggunakan
bobot yang sama.
Contoh berikut menunjukkan cara melakukan penelusuran vektor pada koleksi dengan ID movies.
curl -X POST \
'https://vectorsearch.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/collections/movies/dataObjects:search' \
-H 'Bearer $(gcloud auth print-access-token)' \
-H 'Content-Type: application/json' \
-d '{ \
"vector_search": { \
"search_field": "plot_embedding", \
"vector": { \
"values": [ \
0.42426406871192845, \
0.565685424949238, \
0.7071067811865475 \
] \
}, \
"filter": { \
"genre": { \
"$eq": "Thriller" \
} \
}, \
"top_k": 5, \
"output_fields": { \
"data_fields": "*", \
"vector_fields": "*", \
"metadata_fields": "*" \
} \
} \
}'
Penelusuran teks
Tindakan ini melakukan penelusuran teks lengkap tanpa vektor jarang. Dialek kueri "kata" default memperlakukan seluruh input sebagai istilah penelusuran individual dengan operator AND implisit. Anda dapat menyetel enhanced_query ke true untuk memperluas istilah penelusuran,
menangani stemming, penghapusan kata henti, dan mengizinkan operator penelusuran tambahan:
OR: Operator disjungsi peka huruf besar/kecil yang cocok dengan dokumen yang berisi setidaknya salah satu istilah yang ditentukan. Hal ini hanya berlaku untuk dua istilah yang berdekatan.": (tanda kutip ganda) untuk penelusuran frasa.-: Operator negasi. Operator ini mengecualikan dokumen yang berisi istilah apa pun yang berada sebelumnya.
Penelusuran semantik
Penelusuran ini mengonversi kueri teks Anda menjadi embedding untuk menemukan hasil berdasarkan makna semantik. Model ini menggunakan embedding-config yang ditentukan dalam skema Anda untuk
membuat sematan kueri. Jika beberapa kolom search_vector diberikan,
hasil digabungkan menggunakan bobot yang sama.
Melakukan penelusuran menggunakan penelusuran campuran
Gunakan batch_search_data_objects untuk menjalankan beberapa penelusuran secara paralel
(penelusuran vektor, penelusuran teks, dan penelusuran semantik) dan secara opsional gabungkan
dan beri peringkat hasil menggunakan Ranker.
Ranker berikut tersedia:
ReciprocalRankFusion: Menggabungkan kumpulan hasil menggunakan algoritma Reciprocal Rank Fusion (RFF).VertexRanker: Menggunakan Vertex Ranking API untuk menggabungkan dan memberi peringkat hasil.