Mengurutkan hasil dari penyimpanan data terstruktur

Halaman ini menjelaskan cara mengurutkan hasil kueri penelusuran yang dibuat di penyimpanan data terstruktur dan penyimpanan data tidak terstruktur dengan metadata.

Jenis data yang didukung untuk mengurutkan hasil

Berikut adalah jenis kolom yang dapat Anda gunakan untuk mengurutkan hasil penelusuran:

  • string
  • number
  • datetime
  • geolocation

Sebelum memulai

Pastikan Anda memiliki aplikasi dengan penyimpanan data yang berisi data terstruktur atau data tidak terstruktur dengan metadata.

Mengurutkan hasil penelusuran

Untuk mengurutkan hasil penelusuran untuk penyimpanan data terstruktur atau untuk penyimpanan data tidak terstruktur dengan metadata, ikuti langkah-langkah berikut:

REST

Untuk menggunakan API guna mengurutkan hasil penelusuran untuk aplikasi dengan data terstruktur atau data tidak terstruktur dengan metadata, gunakan metode engines.servingConfigs.search:

  1. Temukan ID aplikasi Anda. Jika Anda sudah memiliki ID aplikasi, lanjutkan ke langkah berikutnya.

    1. Di konsol Google Cloud, buka halaman Agent Builder.

      Buka Aplikasi

    2. Di halaman Aplikasi, temukan nama aplikasi Anda dan dapatkan ID aplikasi dari kolom ID.

  2. Buat kueri penelusuran dan sertakan kolom 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"
    }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project Anda.
    • APP_ID: ID aplikasi Vertex AI Search.
    • QUERY: teks kueri yang akan ditelusuri.
    • ORDER_BY: urutan pengaturan hasil. Urutan pengurutan default adalah menaik. Misalnya, menentukan date akan menampilkan hasil dari yang terlama hingga yang terbaru. Untuk mendapatkan urutan pengurutan menurun, tambahkan desc ke nilai date—misalnya, date desc. Untuk contoh lainnya, lihat contoh orderBy.
    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/my-project-123/locations/global/collections/default_collection/engines/my-app/servingConfigs/default_search:search" \
    -d '{
        "query": "hotel",
        "orderBy": "rating desc"
       }'
        
    { "results": [ { "id": "10d480b19c256bb1", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/10d480b19c256bb1", "id": "10d480b19c256bb1", "structData": { "available_date": "2023-11-05", "amenities": [ "Lake Views", "Private Beach", "Spa", "Water Activities" ], "room_types": [ "Lakefront Suite", "Deluxe Room", "Cottage" ], "location": { "address": "988 Serenity Circle, Tranquil Town, NV 89501, USA" }, "rating": 4.6, "id": 11, "price_per_night": 220.5, "title": "Serenity Springs Hotel" } } }, { "id": "9ffae8af37cc8b63", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/9ffae8af37cc8b63", "id": "9ffae8af37cc8b63", "structData": { "title": "Riverfront Plaza Hotel", "rating": 4.2, "location": { "address": "101 Main St, Anytown, CA 94501, USA" }, "price_per_night": 145.8, "amenities": [ "Fitness Center", "Conference Rooms", "Restaurant", "Valet Parking" ], "id": 3, "room_types": [ "Executive Suite", "King Room", "Double Queen" ], "available_date": "2023-11-15" } } }, { "id": "3be9e854d8f3a47f", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/3be9e854d8f3a47f", "id": "3be9e854d8f3a47f", "structData": { "amenities": [ "Oceanfront Views", "Pool", "Spa", "Beachside Dining" ], "available_date": "2023-09-18", "location": { "address": "449 Oceanfront Drive, Seaside Resort, CA 92007, USA" }, "id": 13, "title": "Ocean Breeze Hotel", "room_types": [ "Ocean View Suite", "Deluxe Room", "Family Suite" ], "rating": 4.1, "price_per_night": 180 } } } ], "totalSize": 3, "attributionToken": "wAHwvwoMCNDYz7UGEMCklrsCEiQ2NmIzYmU5My0wMDAwLTIxMDUtYmUyNy01ODI0MjljMzdlZTQiB0dFTkVSSUMqgAHd1akt3e2ILebtiC2CspoigLKaIpjeqC-q-LMtjr6dFeqCsS2W3qgvwvCeFaz4sy2jgJcinta3LeiCsS3b7Ygt5O2ILa3Eii3Usp0Vpp-VLZzWty359rMt-_azLaCJsy3dj5oixcvzF6vEii2iibMttreMLd_VqS3bj5oipJ-VLQ", "guidedSearchResult": {}, "summary": {} }

    Dalam contoh ini, dokumen yang berisi kata "hotel" diurutkan berdasarkan rating, dari Serenity Springs Hotel dengan rating 4,6 hingga Ocean Breeze Hotel dengan rating 4,1.

orderBy contoh

Untuk mengurutkan di kolom string yang disebut title:

  • "orderBy": "title" untuk menampilkan dokumen dalam urutan abjad menaik menurut judul.

  • "orderBy": "title desc" untuk menampilkan dokumen yang diurutkan dalam urutan alfabet terbalik (dari Z ke A) sesuai dengan judul.

Untuk mengurutkan di kolom angka yang disebut rating:

  • "orderBy": "rating" untuk mengurutkan dari dokumen dengan rating terendah hingga tertinggi.

  • "orderBy": "rating desc" untuk mengurutkan dokumen dari yang diberi rating tertinggi hingga terendah.

Untuk mengurutkan pada kolom tanggal waktu yang disebut available_date:

  • "orderBy": "available_date" untuk mengurutkan dari dokumen yang tersedia paling cepat hingga paling lambat.

  • "orderBy": "available_date desc" untuk mengurutkan dari dokumen dengan tanggal tersedia terjauh ke dokumen yang paling cepat tersedia.

Untuk mengurutkan menurut geolokasi di kolom yang disebut location:

  • "orderBy": "GEO_DISTANCE(location, \"Mountain View, CA\")" mengurutkan dokumen dalam urutan dari yang terdekat ke Mountain View hingga yang terjauh dari Mountain View.

  • "orderBy": "GEO_DISTANCE(location, 37.38, -122.08) desc" mengurutkan dokumen dalam urutan dari yang terjauh ke yang terdekat dengan lokasi 37,38° Lintang Utara dan 122,08° Bujur Barat.