Search API 的用途是找出與指定查詢類似的資料物件,並傳回依相似度排序的結果清單。Search API 也支援篩選功能。
Search API 提供多種搜尋資料物件的方式:向量搜尋、全文搜尋和語意搜尋。此外,您也可以合併多個任何類型的搜尋,進行混合搜尋。
向量搜尋
向量搜尋可讓您提供自己的查詢向量。這是搜尋沒有 embedding-config 的嵌入欄位時的必要方法。如果提供多個 vector_search 欄位,系統會使用相同權重合併結果。
以下範例示範如何對 ID 為 COLLECTION_ID 的集合執行向量搜尋。
REST
使用任何要求資料之前,請先修改下列項目的值:
- COLLECTION_ID:集合的 ID。
- LOCATION:您使用 Agent Platform 的區域。
- PROJECT_ID:您的 Cloud de Confiance by S3NS 專案 ID。
HTTP 方法和網址:
POST https://vectorsearch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataObjects:search
JSON 要求主體:
{
"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": "*"
}
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"results": [
{
"dataObject": {
"name": "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataObjects/1",
"createTime": "2026-01-31T20:05:06Z",
"updateTime": "2026-02-02T13:59:24Z",
"data": {
"year": 1991,
"title": "The Silence of the Lambs",
"director": "Jonathan Demme",
"genre": "Thriller"
},
"vectors": {
"plot_embedding": {
"dense": {
"values": [
1,
1,
1
]
}
},
"sparse_embedding": {
"sparse": {
"values": [
1,
6,
3,
2,
8,
5,
2
],
"indices": [
4065,
13326,
17377,
25918,
28105,
32683,
42998
]
}
},
"genre_embedding": {
"dense": {
"values": [
0.3863801,
0.73934346,
0.16189057,
0.5271367
]
}
},
"soundtrack_embedding": {
"dense": {
"values": [
0.5920452,
0.08301644,
0.12647335,
0.619643,
0.49258286
]
}
}
}
},
"distance": 1.697
},
{
"dataObject": {
"name": "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataObjects/2",
"createTime": "2026-02-04T14:35:29Z",
"updateTime": "2026-02-04T14:37:29Z",
"data": {
"year": 1995,
"title": "Se7en",
"director": "David Fincher",
"genre": "Thriller"
},
"vectors": {
"genre_embedding": {
"dense": {
"values": [
0.3863801,
0.73934346,
0.16189057,
0.5271367
]
}
},
"plot_embedding": {
"dense": {
"values": [
1,
1,
1
]
}
},
"sparse_embedding": {
"sparse": {
"values": [
1,
6,
3,
2,
8,
5,
2
],
"indices": [
4065,
13326,
17377,
25918,
28105,
32683,
42998
]
}
},
"soundtrack_embedding": {
"dense": {
"values": [
0.5920452,
0.08301644,
0.12647335,
0.619643,
0.49258286
]
}
}
}
},
"distance": 1.75
}
]
}
gcloud
使用下方的任何指令資料之前,請先替換以下項目:
-
SEARCH_VECTOR_FILE:包含要搜尋的密集或稀疏向量的 JSON 檔案本機路徑。
密集向量的檔案內容範例:
{ "dense": { "values": [ 0.42426406871192845, 0.565685424949238, 0.7071067811865475 ] } }
稀疏向量的檔案內容範例:
{ "sparse": { "indices": [1, 5, 10], "values": [0.1, 0.5, 0.21] } }
- COLLECTION_ID:集合的 ID。
- LOCATION:您使用 Agent Platform 的區域。
- PROJECT_ID:您的 Cloud de Confiance by S3NS 專案 ID。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud vector-search collections data-objects search \ --vector-search-field="plot_embedding" \ --vector-from-file=SEARCH_VECTOR_FILE \ --json-filter='{"genre": {"$eq": "Thriller"}}' \ --top-k=5 \ --output-data-fields='*' \ --output-vector-fields='*' \ --output-metadata-fields='*' \ --collection=COLLECTION_ID \ --location=LOCATION \ --project=PROJECT_ID
Windows (PowerShell)
gcloud vector-search collections data-objects search ` --vector-search-field="plot_embedding" ` --vector-from-file=SEARCH_VECTOR_FILE ` --json-filter='{"genre": {"$eq": "Thriller"}}' ` --top-k=5 ` --output-data-fields='*' ` --output-vector-fields='*' ` --output-metadata-fields='*' ` --collection=COLLECTION_ID ` --location=LOCATION ` --project=PROJECT_ID
Windows (cmd.exe)
gcloud vector-search collections data-objects search ^ --vector-search-field="plot_embedding" ^ --vector-from-file=SEARCH_VECTOR_FILE ^ --json-filter='{"genre": {"$eq": "Thriller"}}' ^ --top-k=5 ^ --output-data-fields='*' ^ --output-vector-fields='*' ^ --output-metadata-fields='*' ^ --collection=COLLECTION_ID ^ --location=LOCATION ^ --project=PROJECT_ID
您應該會收到類似以下的回應:
---
dataObject:
createTime: '2026-01-31T20:05:06Z'
data:
director: Jonathan Demme
genre: Thriller
title: The Silence of the Lambs
year: 1991
name: projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataObjects/1
updateTime: '2026-02-02T13:59:24Z'
vectors:
genre_embedding:
dense:
values:
- 0.38638
- 0.739343
- 0.161891
- 0.527137
plot_embedding:
dense:
values:
- 1.0
- 1.0
- 1.0
soundtrack_embedding:
dense:
values:
- 0.592045
- 0.0830164
- 0.126473
- 0.619643
- 0.492583
sparse_embedding:
sparse:
indices:
- 4065
- 13326
- 17377
- 25918
- 28105
- 32683
- 42998
values:
- 1.0
- 6.0
- 3.0
- 2.0
- 8.0
- 5.0
- 2.0
distance: 1.697
---
dataObject:
createTime: '2026-02-04T14:35:29Z'
data:
director: David Fincher
genre: Thriller
title: Se7en
year: 1995
name: projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataObjects/2
updateTime: '2026-02-04T14:37:29Z'
vectors:
genre_embedding:
dense:
values:
- 0.38638
- 0.739343
- 0.161891
- 0.527137
plot_embedding:
dense:
values:
- 1.0
- 1.0
- 1.0
soundtrack_embedding:
dense:
values:
- 0.592045
- 0.0830164
- 0.126473
- 0.619643
- 0.492583
sparse_embedding:
sparse:
indices:
- 4065
- 13326
- 17377
- 25918
- 28105
- 32683
- 42998
values:
- 1.0
- 6.0
- 3.0
- 2.0
- 8.0
- 5.0
- 2.0
distance: 1.75
Python
from google.cloud import vectorsearch_v1
# Create the client
data_object_search_service_client = vectorsearch_v1.DataObjectSearchServiceClient()
# Initialize request
vector_search = vectorsearch_v1.VectorSearch(
search_field="plot_embedding",
vector={"values": [0.1, 0.2, 0.3]},
filter={"genre": {"$eq": "Thriller"}},
top_k=5,
)
request = vectorsearch_v1.SearchDataObjectsRequest(
parent="projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID",
vector_search=vector_search,
)
# Make the request
response = data_object_search_service_client.search_data_objects(request=request)
# Handle the response
print(response)
調整搜尋準確度和效能
如果對超過 10 萬個嵌入項目的密集 ANN 索引執行向量搜尋,Agent Retrieval 預設會嘗試在召回率和延遲之間取得最佳平衡。您可以指定目標召回率,根據自己的用途調整這個平衡。
值必須大於或等於 0.00,且小於或等於 1.00。
如要瞭解如何建立 ANN 索引,請參閱「建立 ANN 索引」。
以下範例說明如何對密集 ANN 索引執行向量搜尋,目標召回率為 0.95。
REST
HTTP 方法和網址:
POST https://vectorsearch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/dataObjects:search
JSON 要求主體:
{
"vectorSearch": {
"searchField": "plot_embedding",
"vector": {
"values": [0.42426406871192845, 0.565685424949238, 0.7071067811865475]
},
"topK": 10,
"searchHint": {
"indexHint": {
"name": "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID/indexes/INDEX_ID",
"denseScannParams": {
"targetRecall": 0.95
}
}
},
"outputFields": {
"dataFields": "*",
"vectorFields": "*",
"metadataFields": "*"
}
}
}
gcloud
將查詢向量儲存至 JSON 檔案,例如 vector.json:
{
"dense": {
"values": [0.42426406871192845, 0.565685424949238, 0.7071067811865475]
}
}
然後執行 gcloud vector-search collections data-objects search 指令:
gcloud vector-search collections data-objects search \
--project=PROJECT_ID \
--location=LOCATION \
--collection=COLLECTION_ID \
--vector-search-field=plot_embedding \
--vector-from-file=vector.json \
--use-index=INDEX_ID \
--dense-scann-target-recall=0.95 \
--top-k=10
Python
from google.cloud import vectorsearch_v1
# Create the client
data_object_search_service_client = vectorsearch_v1.DataObjectSearchServiceClient()
collection = "projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID"
# Set the target recall rate on the index hint
search_hint = vectorsearch_v1.SearchHint(
index_hint=vectorsearch_v1.SearchHint.IndexHint(
name=f"{collection}/indexes/INDEX_ID",
dense_scann_params=vectorsearch_v1.SearchHint.IndexHint.DenseScannParams(
target_recall=0.95,
),
),
)
# Initialize request
vector_search = vectorsearch_v1.VectorSearch(
search_field="plot_embedding",
vector={"values": [0.42426406871192845, 0.565685424949238, 0.7071067811865475]},
top_k=10,
search_hint=search_hint,
output_fields=vectorsearch_v1.OutputFields(
data_fields=["*"],
vector_fields=["*"],
metadata_fields=["*"],
),
)
request = vectorsearch_v1.SearchDataObjectsRequest(
parent=collection,
vector_search=vector_search,
)
# Make the request
response = data_object_search_service_client.search_data_objects(request=request)
# Handle the response
print(response)
文字搜尋
這會執行全文搜尋,但不使用稀疏向量。預設的「字詞」查詢方言會將整個輸入內容視為個別搜尋字詞,並使用隱含的 AND 運算子。您可以將 enhanced_query 設為 true,擴大搜尋字詞範圍、處理詞幹、移除停用字詞,並允許使用其他搜尋運算子:
OR:區分大小寫的連詞運算子,可比對包含至少一個指定字詞的文件。這項規則只適用於兩個相鄰的字詞。":(雙引號) 進行詞組搜尋。-:否定運算子。系統會排除含有該字詞的文件。
進階文字搜尋
Agent Retrieval 文字搜尋 API 可讓您透過包含一或多個子查詢的結構化查詢,執行文字搜尋,並達成下列目標:
比對特定資料物件欄位。
指定要執行的比對類型:
每字詞 (不區分大小寫)
完全相符 (區分大小寫)
加入各語言的強化功能,比對字詞詞幹、同義字、錯別字和停用字詞 (例如「a」、「an」和「the」)。
將子查詢分組,控管評估順序。
提高分數貢獻度,進而影響排名。
子查詢可分為三種類型:
本頁的範例使用下表所示的「Collection」。其中包含六個資料物件,並在資料結構定義下列欄位:字串 ID、Title、Description 和字串陣列 Keywords。
| ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|
| 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
| 2 | Lazy Dog Days | 棕色狗在睡覺。 | 家畜, 寵物, 房子, 犬科動物, 平靜, 懶惰, 聽話 |
| 3 | 狐狸與狗 | 敏捷的狐狸智取懶狗。 | 野生、家養、衝突、犬形類、哺乳動物、互動 |
| 4 | 棕熊 | 在森林中快速移動。 | 野生、森林、熊科、頂級掠食者、休眠、巨大 |
| 5 | A foxy story | 狗跳得很高。 | cunning、jumps |
| 6 | My Lazy Days of Summer | 一篇關於暑假放鬆的短篇故事。 | 夏天、放鬆、度假、太陽 |
文字子查詢
文字查詢會比對資料物件中的一或多個欄位。所有結構化查詢都必須包含至少一個文字查詢。
以下範例定義了基本文字查詢:
"text_search": {
"structured_query": {
"text": {
"text": "fox vs dog"
}
}
}
根據預設,系統會將文字拆分成個別字詞,並在指定欄位中搜尋每個字詞。在上述範例中,系統會在 Title 欄位中搜尋「fox」、「vs」和「dog」這幾個字詞。
文字查詢有下列選用參數:
fields:要比對的欄位陣列。如未指定,預設會比對所有欄位。系統會使用隱含的OR運算子比對欄位。match_type:要執行的比對類型。比對類型可以是EXACT,指定欄位必須與搜尋文字完全相符。如果欄位是字串陣列,系統會比對陣列中的任何元素。enhancement:指定enabled和languageCode,允許對languageCode指定語言中的同義字、詞幹、錯別字和停用字進行比對 (例如en-US)。預設為不進行任何強化。boost:選用。要套用至查詢分數的調節係數。 預設值為1.0。
比對類型
match_type 參數會指定搜尋文字與欄位值的比對方式。
參數值可以是:
EXACT:這個欄位必須與查詢字詞完全相符。如果欄位是字串陣列,系統會比對陣列中的任何元素。
以下範例指定 EXACT 比對類型:
"text_search": {
"structured_query": {
"text": {
"text": "Fox vs Dog",
"fields": [ "Title" ],
"match_type": "EXACT"
}
}
}
字串陣列的比對類型
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 1.0000 | 3 | 狐狸與狗 | 敏捷的狐狸智取懶狗。 | 野生、家養、衝突、犬形類、哺乳動物、互動 |
如果欄位是字串陣列,搜尋文字會與任何陣列元素比對。
以下範例說明如何在 Keywords 字串陣列中搜尋確切文字 wild:
"text_search": {
"structured_query": {
"text": {
"text": "wild",
"fields": [ "Keywords" ],
"match_type": "EXACT"
}
}
}
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 1.0000 | 3 | 狐狸與狗 | 敏捷的狐狸智取懶狗。 | 野生、家養、衝突、犬形類、哺乳動物、互動 |
| 1.0000 | 4 | 棕熊 | 在森林中快速移動。 | 野生、森林、熊科、頂級掠食者、休眠、巨大 |
| 1.0000 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
查詢強化功能
搜尋查詢可包含選用的 queryEnhancement 參數,指定語言專屬的強化功能。包括同義字、詞幹 (例如「跳」的詞幹「跳躍」)、錯別字和停用字詞 (例如「一」、「一個」和「該」)。
這個參數是具有下列屬性的物件:
enabled:布林值,用於指定是否啟用強化功能。languageCode:指定強化功能的語言的字串 (例如en-US)。
以下範例會啟用 en-US 語言的強化功能:
"text_search": {
"structured_query": {
"text": {
"text": {
"text": "jump",
"fields": [ "Description" ],
"queryEnhancement": {
"enabled": true,
"languageCode": "en-US"
}
}
}
}
}
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 0.3419 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
| 0.3419 | 5 | A foxy story | 狗跳得很高。 | cunning、jumps |
如果未指定 queryEnhancement 或 enabled 為 false,系統就不會比對。
合併子查詢
合併查詢會對兩項以上的子查詢套用布林運算。支援的操作為 AND 和 OR。
合併查詢具有下列屬性:
op:要套用至子查詢的布林運算子。值可以是AND或OR。subQueries:要合併的子查詢陣列。可以是任何支援的子查詢類型,包括其他合併查詢。巢狀結構的深度上限為 2。boost:選用。要套用至查詢分數的調節係數。 預設值為1.0。
連詞 (AND)
AND 運算子會比對包含所有子查詢字詞的資料物件。
以下範例說明如何使用 AND 運算子合併三項文字查詢:
"text_search": {
"structured_query": {
"combine": {
"op": "AND",
"subQueries": [
{
"text": {
"text": "Brown",
"fields": [ "Title" ]
}
},
{
"text": {
"text": "quick",
"fields": [ "Description" ]
}
},
{
"text": {
"text": "forest predator",
"fields": [ "Keywords" ]
}
}
]
}
}
}
在這個範例中,只有在所有三個子查詢都相符時,才會進行比對。
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 5.0587 | 4 | 棕熊 | 在森林中快速移動。 | 野生、森林、熊科、頂級掠食者、休眠、巨大 |
| 5.0587 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
如果文字子查詢有多個要比對的欄位,系統會套用隱含的 OR,如下例所示:
"text_search": {
"structured_query": {
"combine": {
"op": "AND",
"subQueries": [
{
"text": {
"text": "Brown",
"fields": [ "Title", "Description" ]
}
},
{
"text": {
"text": "quick",
"fields": [ "Description" ]
}
},
{
"text": {
"text": "forest predator",
"fields": [ "Keywords" ]
}
}
]
}
}
}
在上述範例中:
第一個子查詢會比對
Title或Description欄位中不區分大小寫的字詞Brown。第二個子查詢會比對
Description欄位中不區分大小寫的字詞quick。第三個子查詢會比對
Keywords字串陣列欄位中任何值的不區分大小寫字詞forest和predator。如果這三項子查詢都相符,系統就會將合併查詢視為相符。
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 6.3176 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
| 5.0587 | 4 | 棕熊 | 在森林中快速移動。 | 野生、森林、熊科、頂級掠食者、休眠、巨大 |
Disjunction (OR)
OR 運算子會比對包含至少一個子查詢字詞的資料物件。
以下範例說明如何使用 OR 運算子合併三項文字查詢:
"text_search": {
"structured_query": {
"combine": {
"op": "OR",
"subQueries": [
{
"text": {
"text": "Brown",
"fields": [ "Title", "Description" ]
}
},
{
"text": {
"text": "quick",
"fields": [ "Description" ]
}
},
{
"text": {
"text": "forest predator",
"fields": [ "Keywords" ]
}
}
]
}
}
}
在這個範例中,只要三個子查詢中有任一項相符,就會視為相符。
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 6.3176 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
| 5.0587 | 4 | 棕熊 | 在森林中快速移動。 | 野生、森林、熊科、頂級掠食者、休眠、巨大 |
分組
合併的子查詢可以巢狀結構的形式,納入其他合併的子查詢,藉此控制評估順序。
以下範例說明如何將子查詢分組:
"text_search": {
"structured_query": {
"combine": {
"op": "AND",
"subQueries": [
{
"combine": {
"op": "OR",
"subQueries": [
{
"text": {
"text": "Fox",
"fields": [ "Title" ]
}
},
{
"text": {
"text": "jumps",
"fields": [ "Description" ]
}
}
]
}
},
{
"unary": {
"op": "NOT",
"subQuery": {
"text": {
"text": "domestic",
"fields": [ "Keywords" ]
}
}
}
}
]
}
}
}
前例等同於:(不分大小寫的 Fox 位於 Title OR 不分大小寫的 jumps 位於 Description) AND NOT 不分大小寫的 domestic 位於任何 Keywords 元素中。
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 3.5178 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
| 2.2589 | 5 | A foxy story | 狗跳得很高。 | cunning、jumps |
一元子查詢
一元子查詢會將布林運算套用至結構化查詢中的單一子查詢。系統僅支援 NOT 運算子。
一元查詢具有下列屬性:
op:要套用至子查詢的布林運算子。值可以是NOT。subQuery:要套用一元運算的子查詢。boost:選用。要套用至查詢分數的調節係數。 預設值為1.0。
否定 (NOT)
NOT 運算子會比對不包含子查詢字詞的資料物件。
以下範例說明如何使用 NOT 運算子:
"text_search": {
"structured_query": {
"unary": {
"op": "NOT",
"subQuery": {
"text": {
"text": "dog",
"fields": [ "Description" ]
}
}
}
}
}
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 1.000 | 4 | 棕熊 | 在森林中快速移動。 | 野生、森林、熊科、頂級掠食者、休眠、巨大 |
| 1.000 | 6 | My Lazy Days of Summer | 一篇關於暑假放鬆的短篇故事。 | 夏天、放鬆、度假、太陽 |
套用至字串陣列時,如果任何陣列元素都不含該字詞,NOT 運算子就會比對資料物件。
在這個範例中,如果大小寫不分 Term orange 不包含在 Keywords 字串陣列的任何元素中,就會比對成功。
"text_search": {
"structured_query": {
"combine": {
"op": "AND",
"subQueries": [
{
"text": {
"text": "Brown",
"fields": [ "Title" ]
}
},
{
"text": {
"text": "quick",
"fields": [ "Description" ]
}
},
{
"text": {
"text": "forest predator",
"fields": [ "Keywords" ]
}
},
{
"unary": {
"op": "NOT",
"subQuery": {
"text": {
"text": "orange",
"fields": [ "Keywords" ]
}
}
}
}
]
}
}
}
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 6.0587 | 4 | 棕熊 | 在森林中快速移動。 | 野生、森林、熊科、頂級掠食者、休眠、巨大 |
增強
任何子查詢都可以有 boost 參數,可將乘數套用至子查詢的分數。根據預設,所有子查詢的 boost 都是 1.0。
以下範例說明如何提升子查詢的權重:
"text_search": {
"structured_query": {
"combine": {
"op": "OR",
"subQueries": [
{
"text": {
"text": "fox",
"fields": [ "Title" ]
},
"boost": 1.0
},
{
"text": {
"text": "jumps",
"fields": [ "Description" ]
},
"boost": 1.0
},
{
"text": {
"text": "interaction",
"fields": [ "Keywords" ]
},
"boost": 5.0
}
]
}
}
}
下表顯示查詢結果:
| 分數 | ID | 標題 | 說明 | 關鍵字 |
|---|---|---|---|---|
| 7.5534 | 3 | 狐狸與狗 | 敏捷的狐狸智取懶狗。 | 野生、家養、衝突、犬形類、哺乳動物、互動 |
| 2.5178 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸輕鬆跳過懶狗。 | 野生, 森林, 哺乳類動物, 橘色, 敏捷, 掠食者 |
| 1.2589 | 5 | A foxy story | 狗跳得很高。 | cunning、jumps |
語意搜尋
這項搜尋功能會將文字查詢轉換為嵌入,根據語意意義找出結果。這項功能會使用結構定義中定義的 embedding-config,產生查詢嵌入。如果提供多個 vector_search 欄位,系統會使用相同權重合併結果。
使用混合型搜尋進行搜尋
使用 batch_search_data_objects 並行執行多項搜尋 (向量搜尋、文字搜尋和語意搜尋)。您也可以選擇使用 ReciprocalRankFusion Ranker 合併結果並排名,這項工具會使用倒數排名融合 (RFF) 演算法合併結果集。