本页介绍了如何对结构化数据存储区和包含元数据的非结构化数据存储区中的搜索查询结果进行排序。
支持用于对结果排序的数据类型
您可以按以下字段类型对搜索结果进行排序:
stringnumberdatetimegeolocation
准备工作
确保您有一个应用,其中包含一个数据存储区,该存储区包含结构化数据或包含元数据的非结构化数据。
对搜索结果进行排序
如需对结构化数据存储区或具有元数据的非结构化数据存储区的搜索结果进行排序,请按以下步骤操作:
REST
如需使用 API 对包含结构化数据或包含元数据的非结构化数据的应用搜索结果进行排序,请使用 engines.servingConfigs.search 方法:
查找应用 ID。如果您已拥有应用 ID,请跳到下一步。
在 Google Cloud 控制台中,前往 AI Applications 页面。
在应用页面上,找到应用的名称,并从 ID 列获取应用的 ID。
发出搜索查询并添加
orderBy字段。curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "orderBy": "ORDER_BY" }'替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 ID。APP_ID:Vertex AI Search 应用的 ID。QUERY:要搜索的查询文本。ORDER_BY:结果的排列顺序。默认排序顺序为升序。例如,指定date会返回从最旧到最新的结果。如需按降序排序,请在date值后附加desc,例如date desc。如需查看更多示例,请参阅orderBy示例。
orderBy 个示例
按名为 title 的字符串字段排序:
"orderBy": "title",以按标题的升序字母顺序返回文档。"orderBy": "title desc",以返回按标题以反向字母顺序(从 Z 到 A)排序的文档。
如需按名为 rating 的数字字段排序,请执行以下操作:
"orderBy": "rating"可按评分从低到高对文档进行排序。"orderBy": "rating desc"可按评分从高到低对文档进行排序。
按名为 available_date 的日期时间字段排序:
"orderBy": "available_date"可按从最近到最远的顺序排列。"orderBy": "available_date desc",以按从最远到最近的可用日期对文档进行排序。
按名为 location 的字段中的地理位置进行排序:
"orderBy": "GEO_DISTANCE(location, \"Mountain View, CA\")"会按从离 Mountain View 最近到离 Mountain View 最远的顺序对文档进行排序。"orderBy": "GEO_DISTANCE(location, 37.38, -122.08) desc"会按从最远到最近的顺序对文档进行排序,排序依据是与位置 37.38°N 和 122.08°W 的距离。