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 索引。
以下示例演示了如何对目标召回率为 0.95 的密集 ANN 索引执行向量搜索。
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 | 一个狡猾的故事 | The dog jumps high. | 狡猾,跳跃 |
| 6 | 我的夏日慵懒时光 | 一篇关于在暑假期间放松身心的短篇故事。 | 夏天、放松、度假、阳光 |
文本子查询
文本查询会与数据对象中的一个或多个字段进行匹配。所有结构化查询都必须包含至少一个文本查询。
以下示例定义了一个基本文本查询:
"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 参数,用于指定特定于语言的增强功能。这包括匹配同义词、词干(例如,“jump”词干“jumping”)、拼写错误和停用字(例如“a”“an”和“the”)。
该参数是一个具有以下属性的对象:
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 | 一个狡猾的故事 | The dog jumps high. | 狡猾,跳跃 |
如果未指定 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 | 棕熊 | 在森林中快速移动。 | 野生的、森林、熊科、顶级掠食者、冬眠、巨型 |
析取 (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" ]
}
}
}
}
]
}
}
}
上述示例等效于以下内容:(Title 中不区分大小写的 Fox OR Description 中不区分大小写的 jumps)AND NOT 任何 Keywords 元素中不区分大小写的 domestic。
下表显示了查询结果:
| 得分 | ID | 标题 | 说明 | 关键字 |
|---|---|---|---|---|
| 3.5178 | 1 | The Quick Brown Fox | 敏捷的棕色狐狸轻松跳过懒狗。 | 野生, 森林, 哺乳动物, 橙色, 敏捷, 捕食者 |
| 2.2589 | 5 | 一个狡猾的故事 | The dog jumps high. | 狡猾,跳跃 |
一元子查询
一元子查询将布尔运算应用于结构化查询中的单个子查询。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 | 我的夏日慵懒时光 | 一篇关于在暑假期间放松身心的短篇故事。 | 夏天、放松、度假、阳光 |
当应用于字符串数组时,如果字词未包含在数组的任何元素中,NOT 运算符会匹配数据对象。
在此示例中,如果 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 | 一个狡猾的故事 | The dog jumps high. | 狡猾,跳跃 |
语义搜索
此搜索功能会将您的文本查询转换为嵌入,以便根据语义含义查找结果。它使用架构中定义的 embedding-config 生成查询嵌入。如果提供了多个 vector_search 字段,系统会使用相同的权重来合并结果。
使用混合搜索进行搜索
使用 batch_search_data_objects 并行执行多项搜索(向量搜索、文本搜索和语义搜索)。您可以选择使用 ReciprocalRankFusion Ranker 合并结果并对其进行排名,该 Ranker 使用倒数排序融合 (RFF) 算法合并结果集。