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

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

支持对结果排序的数据类型

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

  • 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\")":按离山景城的距离从最近到最远对文档进行排序。

  • "orderBy": "GEO_DISTANCE(location, 37.38, -122.08) desc":按离 37.38°N 和 122.08°W 位置的距离从最远到最近对文档进行排序。