创建索引后,您可以运行查询以获取其最近邻。
每个 DeployedIndex
都有一个 DEPLOYED_INDEX_SERVER_IP
,您可以通过列出 IndexEndpoints
进行检索。如需查询 DeployedIndex
,请连接到其在端口 10000
上的 DEPLOYED_INDEX_SERVER_IP
,并调用 Match
或 BatchMatch
方法。此外,您还可以使用 DOC_ID
进行查询。
以下示例使用开源工具 grpc_cli
将 grpc 请求发送到已部署的索引服务器。
gRPC
在第一个示例中,使用 Match
方法来发送单个查询。
./grpc_cli call ${DEPLOYED_INDEX_SERVER_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match '{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}'
在第二个示例中,将两个单独的查询组合到同一个 BatchMatch
请求中。
./grpc_cli call ${DEPLOYED_INDEX_SERVER_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.BatchMatch 'requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}, {deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.2,..]}]}]'
您必须从 [服务对等互连的同一 VPC](#vpc-network-peering-setup) 中运行的客户端调用这些 API。
如需使用 DOC_ID
运行查询,请使用以下示例。
./grpc_cli call ${DEPLOYED_INDEX_SERVER_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"
如需了解详情,请参阅客户端库说明。
控制台
按照以下说明从控制台查询 VPC 索引。
- 在 Google Cloud 控制台的 Vertex AI 部分中,前往部署和使用部分。选择 Vector Search
- 选择要查询的 VPC 索引。此时会打开索引信息页面。
- 向下滚动到已部署的索引部分,然后选择要查询的已部署索引。此时会打开已部署的索引信息页面。
- 在查询索引部分中,选择查询参数。您可以选择按向量或特定数据点进行查询。
- 使用开源工具 grpc_cli 或使用 Python 版 Vertex AI SDK 执行查询。
影响性能的查询时间设置
使用 Vector Search 时,以下查询时参数可能会影响延迟时间、可用性和费用。本指南适用于大多数情况。 但是,请始终对您的配置进行实验,以确保它们适用于您的用例。
如需了解参数定义,请参阅索引配置参数。
参数 | 简介 | 性能影响 |
---|---|---|
approximateNeighborsCount |
告知算法要从每个分片中检索的近似结果数。 |
增加
降低
|
setNeighborCount |
指定您希望查询返回的结果数。 |
在大多数用例中,小于或等于 300 的值仍然保持高性能。 对于较大的值,请针对具体用例进行测试。
|
fractionLeafNodesToSearch |
控制搜索最近邻时要访问的叶节点的百分比。这与 leafNodeEmbeddingCount 相关,因为每个叶节点的嵌入越多,每个叶节点检查的数据就越多。 |
增加
降低
|