对结构化数据存储区中的结果进行排序

本页介绍了如何对针对结构化数据存储区和包含元数据的非结构化数据存储区发出的搜索查询的结果进行排序。

支持用于对结果进行排序的数据类型

您可以按以下字段类型对搜索结果进行排序:

  • string
  • number
  • datetime
  • geolocation

准备工作

确保您有一个应用,其数据存储区包含结构化数据或包含元数据的非结构化数据。

对搜索结果进行排序

如需对结构化数据存储区或具有元数据的非结构化数据存储区的搜索结果进行排序,请按以下步骤操作:

REST

如需使用 API 对包含结构化数据或包含元数据的非结构化数据的应用搜索结果进行排序,请使用 engines.servingConfigs.search 方法:

  1. 查找应用 ID。如果您已拥有应用 ID,请跳到下一步。

    1. 在 Google Cloud 控制台中,前往 AI Applications 页面。

      前往“应用”

    2. 应用页面上,找到应用的名称,并从 ID 列获取应用的 ID。

  2. 发出搜索查询并添加 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 的距离。