Mendapatkan hasil penelusuran

Halaman ini menjelaskan pembuatan kueri dasar dengan penelusuran, termasuk penelusuran kueri teks, penelusuran penjelajahan, penomoran halaman, pengoptimalan, dan hasil yang dipersonalisasi.

Jangan pernah menyimpan hasil yang dipersonalisasi dari pengguna akhir ke dalam cache, dan jangan pernah menampilkan hasil yang dipersonalisasi untuk pengguna akhir yang berbeda.

Tentang penelusuran teks dan jelajahi penelusuran dengan penelusuran

Penelusuran memberikan kemampuan penelusuran dan pencarian kueri teks.

Dalam kasus penggunaan penelusuran kueri teks, pembeli dapat memasukkan kueri berbasis teks di situs Anda. Penelusuran menampilkan respons penelusuran yang berisi produk yang sesuai dengan parameter kontrol yang telah Anda siapkan, yang diurutkan berdasarkan relevansi dan pemaksimalan pendapatan.

Dalam kasus penggunaan jelajah, pembeli mungkin membuka menu situs Anda dan membuka kategori produk tertentu. Penelusuran otomatis memilih tata urutan yang paling memaksimalkan pendapatan dengan belajar dari perilaku dan tren pengguna. Hasil penelusuran dapat lebih disempurnakan dengan kontrol yang telah Anda siapkan.

Permintaan penelusuran teks dan penjelajahan menggunakan metode servingConfigs.search.

Penelusuran kueri teks

Saat pengguna memasukkan kueri teks untuk melakukan penelusuran di situs Anda, penelusuran akan mengurutkan hasil penelusuran potensial berdasarkan relevansi, popularitas, daya beli, dan personalisasi.

Penelusuran menganggap permintaan servingConfigs.search sebagai permintaan penelusuran berbasis teks jika memiliki kolom query yang tidak kosong.

Saat mengupload peristiwa pengguna, kirim peristiwa penelusuran kueri teks yang dibuat oleh penelusuran sebagai peristiwa pengguna search. Jika peristiwa memiliki kolom userEvent.searchQuery yang tidak kosong dan kolom userEvent.pageCategories yang kosong, penelusuran akan menganggapnya sebagai peristiwa penelusuran berbasis teks.

Jelajahi penelusuran

Biasanya, produk penjelajahan yang menggunakan navigasi situs memberikan hasil yang semua relevansinya, atau diurutkan berdasarkan item terlaris. Penelusuran memanfaatkan AI untuk mengoptimalkan pengurutan hasil penjelajahan dengan mempertimbangkan popularitas, daya beli, dan personalisasi.

Saat metode servingConfigs.search mengirim permintaan, penelusuran akan menganggapnya sebagai permintaan penelusuran jelajahi jika kolom query kosong. Jika demikian, hasilnya didasarkan pada kolom filter dan pageCategories, serta pengoptimalan dan personalisasi lebih lanjut jika tersedia.

Saat mengupload peristiwa pengguna, pastikan Anda mengirimkan peristiwa penelusuran penjelajahan yang dibuat oleh penelusuran sebagai peristiwa pengguna search. Penelusuran menganggap peristiwa pengguna search sebagai peristiwa berbasis penjelajahan jika memiliki kolom userEvent.searchQuery yang kosong dan kolom userEvent.pageCategories yang tidak kosong.

Untuk mendapatkan hasil penelusuran penjelajahan yang benar, nilai pageCategories dan filter dalam permintaan penelusuran Anda harus sama persis dengan nilai pageCategories dan filter di peristiwa pengguna yang Anda upload. Jika tidak sama persis, data dalam permintaan penelusuran mungkin tidak dikenali, yang dapat berdampak negatif pada kualitas hasil.

Gunakan permintaan penelusuran untuk mendapatkan hasil baik untuk penelusuran teks maupun penelusuran penjelajahan. Untuk membuat permintaan penelusuran, gunakan metode servingConfigs.search.

Semua permintaan penelusuran memerlukan placement, yang mengidentifikasi nama resource lengkap dari konfigurasi penayangan yang akan digunakan. Konfigurasi penayangan menentukan setelan dan kontrol terkait yang memengaruhi hasil penelusuran.

Permintaan penelusuran kueri teks memerlukan kolom query yang tidak kosong.

Permintaan penelusuran jelajah memerlukan kolom pageCategories yang tidak kosong.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts(String query) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Secara default, hasil dalam jumlah yang wajar yang diurutkan berdasarkan relevansi akan ditampilkan.

Untuk mendapatkan atribut produk yang ditampilkan dengan respons penelusuran, pastikan untuk memberikan nilai atribut saat Anda mengimpor data katalog. Product memiliki atribut sistem yang telah ditentukan sebelumnya, seperti merek, warna, dan ukuran yang dapat Anda berikan nilainya. Anda juga dapat menyertakan atribut khusus yang Anda tentukan dengan Product.attributes.

Tutorial kueri

Tutorial ini menunjukkan cara mengirim kueri penelusuran berbasis teks ke Vertex AI Search untuk layanan retail dan menganalisis responsnya.


Untuk mengikuti panduan langkah demi langkah tugas ini langsung di Cloud Shell Editor, klik Pandu saya:

Pandu saya


Penomoran halaman

Gunakan penomoran halaman untuk mengurangi waktu pencarian dan ukuran respons yang dikirim.

Tutorial penomoran halaman

Tutorial ini menunjukkan cara mengontrol penomoran halaman dalam permintaan penelusuran berbasis teks. Saat pembeli mencari produk di toko, mereka dapat meningkatkan navigasi melalui hasil penelusuran. Misalnya, mereka dapat membatasi jumlah item dalam respons penelusuran menggunakan fitur ukuran halaman atau melompat ke halaman pilihan mereka dengan menggunakan fitur offset.


Untuk mengikuti panduan langkah demi langkah tugas ini langsung di Cloud Shell Editor, klik Pandu saya:

Pandu saya


Memberi nomor halaman

Untuk melompat dari satu halaman ke halaman lainnya, gunakan page_token atau offset, sesuai dengan kasus penggunaan Anda.

Untuk melompat ke halaman berikutnya, Anda dapat menggunakan page_token. Misalnya, Anda mengirim SearchRequest berikut.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
}

Dari SearchResponse, Anda bisa mendapatkan produk yang dihasilkan dengan 5 relevansi teratas, bersama dengan next_page_token.

JSON

{
  results: [
    products{...}, products{...}, products{...}, products{...}, products{...}
  ]
  next_page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
  total_size: 100
  search_token: "NtQKDAiXt4_3BRDCg_jnARABGiQ1ZWRjOTRlOC0wMDAwLTI1YTEtODJlMy1mNGY1ZTgwZDUxOGM"
}

Untuk mendapatkan produk hasil dengan 5 relevansi berikutnya (ke-6 hingga ke-10), Anda harus menetapkan page_token menggunakan placement, visitor_id, dan query yang sama dengan next_page_token dari SearchResponse sebelumnya.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts_withNextPageToken(String query, int pageSize)
    throws IOException, InterruptedException {
  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchRequest firstRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .build();

    SearchResponse firstResponse = searchClient.search(firstRequest).getPage()
        .getResponse();
    System.out.println("First search response: " + firstResponse);

    SearchRequest secondRequest = SearchRequest.newBuilder()
        .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
        .setBranch(DEFAULT_BRANCH_NAME)
        .setVisitorId(VISITOR_ID)
        .setQuery(query)
        .setPageSize(pageSize)
        .setPageToken(firstResponse.getNextPageToken())
        .build();

    SearchResponse secondResponse = searchClient.search(secondRequest).getPage()
        .getResponse();
    System.out.println("Second search response: " + secondResponse);
  }
}

Dalam contoh ini, SearchRequest terlihat seperti ini:

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  page_token: "wY4ETNkBDOlVjZ0YWLzUmM40SMhVjMtADMwATL5UGN5MGZlVDJaIQ5LaYsQUw9fC6lIwgE1EgC"
}

Dalam beberapa kasus lainnya, daripada menavigasi dari halaman ke halaman atau mendapatkan hasil dengan relevansi teratas, Anda dapat langsung melompat ke posisi tertentu dengan offset.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProducts_withOffset(String query, int pageSize,
    int offset) throws IOException, InterruptedException {
  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setOffset(offset)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Misalnya, jika menginginkan halaman kesepuluh dari hasil penelusuran saat ukuran halaman adalah 5, Anda dapat menetapkan offset menjadi 45, yang dihitung dengan (10 - 1) * 5.

JSON

{
  placement: 'projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/placements/default_search'
  visitor_id: 'VISITOR_ID'
  query: 'shoes'
  page_size: 5
  offset: 45
}

Tingkat performa penelusuran

Penelusuran menawarkan beberapa tingkat performa penelusuran yang makin meningkatkan hasil Anda. Misalnya, untuk kasus penggunaan penelusuran kueri teks, hasil mungkin hanya didasarkan pada relevansi. Saat Anda mencapai tingkat performa yang lebih canggih, penelusuran dapat menampilkan hasil yang didasarkan pada relevansi, popularitas, pengoptimalan pendapatan, dan personalisasi.

Penelusuran akan otomatis membuka tingkat performa yang lebih tinggi saat Anda mengupload katalog dan data peristiwa pengguna yang memenuhi persyaratan minimum setiap tingkat.

Halaman Kualitas data di Search for Retail Console memberikan penilaian tentang persyaratan yang telah Anda penuhi untuk setiap tingkat. Untuk mengetahui informasi selengkapnya tentang cara menggunakan halaman ini untuk melihat kualitas data dan tingkat performa penelusuran, lihat Membuka tingkat performa penelusuran.

Mengevaluasi penelusuran teks dan penjelajahan hasil

Sebelum memperbarui kode situs untuk meminta penelusuran teks atau menjelajahi hasil penelusuran, Anda dapat melihat pratinjau hasilnya untuk mengonfirmasi bahwa konfigurasi penayangan berfungsi seperti yang Anda harapkan.

Untuk mengetahui informasi selengkapnya tentang konfigurasi penayangan, lihat Tentang menayangkan konfigurasi.

Anda dapat melihat pratinjau penayangan hasil konfigurasi dari halaman Evaluate, atau dengan membuka halaman Details konfigurasi penayangan di konsol dan mengklik tab Evaluate. Langkah-langkah berikut menunjukkan cara melihat pratinjau dari halaman Evaluate.

Untuk melihat pratinjau hasil yang ditampilkan oleh konfigurasi penayangan Anda:

  1. Buka halaman Evaluate di Search for Retail console.

    Buka halaman Evaluasi

  2. Klik tab Telusuri.

  3. Pilih konfigurasi penayangan yang ingin Anda lihat pratinjaunya.

  4. Pilih cabang katalog yang berisi katalog yang ingin dilihat pratinjaunya.

  5. Opsional: Masukkan ID pengunjung untuk melihat pratinjau hasil penelusuran bagi pengguna tersebut.

  6. Opsional: Masukkan ID pengguna untuk melihat pratinjau hasil penelusuran untuk pengguna tersebut.

  7. Opsional: Masukkan waktu penelusuran untuk melihat pratinjau hasil penelusuran yang akan muncul pada waktu yang ditentukan.

    Misalnya, jika Anda telah mempromosikan produk tertentu untuk Black Friday, Anda dapat melihat hasil yang akan ditampilkan pada hari itu.

  8. Opsional: Pilih faset untuk ditampilkan di samping hasil penelusuran, lalu klik OK untuk menerapkannya.

    Faset yang Anda pilih digunakan untuk membuat daftar filter faset yang muncul di bagian Add facet setelah Anda melakukan penelusuran awal. Filter faset ini dapat menyertakan faset selain yang dipilih pada langkah ini, seperti faset dinamis.

  9. Masukkan kueri penelusuran berbasis teks guna melihat pratinjau hasil penelusuran untuk kueri tersebut.

  10. Klik Search preview atau tekan enter di kolom input untuk melihat hasilnya.

    Hasil penelusuran ditampilkan dengan gambar thumbnail yang tersedia.

    Jika penelusuran Anda memicu kontrol pengalihan, akan muncul pemberitahuan yang menampilkan URI pengalihan.

  11. Opsional: Klik ikon Grid atau ikon List untuk mengganti cara hasil penelusuran ditampilkan di pratinjau.

  12. Opsional: Jika Anda memilih faset untuk muncul bersama hasil, pilih satu atau beberapa nilai faset dari daftar faset untuk memfilter hasil menurut nilai tersebut. Hasil akan otomatis diperbarui setelah dipilih.

    Saat Anda memilih beberapa nilai dari faset yang sama, nilai tersebut akan diterapkan sebagai operator OR, dan nilai di seluruh faset yang berbeda diterapkan seperti operator AND. Misalnya, setelah memilih faset "color" dan nilai "blue" dan "gold", serta nilai bahan "cotton" dan "polyester". Hasil penelusuran Anda harus memiliki atribut "biru" atau "emas", dan juga harus memiliki "katun" atau "poliester" sebagai atribut.

Jelajahi

  1. Buka halaman Evaluate di Search for Retail console.

    Buka halaman Evaluasi

  2. Klik tab Browse.

  1. Pilih konfigurasi penayangan yang ingin Anda lihat pratinjaunya.

  2. Pilih cabang katalog yang berisi katalog yang ingin dilihat pratinjaunya.

  3. Opsional: Masukkan ID pengunjung untuk melihat pratinjau hasil bagi pengguna tersebut.

  4. Opsional: Masukkan ID pengguna untuk melihat pratinjau hasil bagi pengguna tersebut.

  5. Opsional: Untuk melihat pratinjau tampilan hasil dengan filter tertentu yang ditambahkan, masukkan string filter. Gunakan sintaksis ekspresi filter yang ditentukan dalam dokumentasi Filter.

  6. Opsional: Masukkan waktu penjelajahan untuk melihat pratinjau hasil yang akan muncul pada waktu yang ditentukan.

    Misalnya, jika Anda telah mempromosikan produk tertentu untuk Black Friday, Anda dapat melihat hasil yang akan ditampilkan pada hari itu.

  7. Masukkan kategori halaman yang ingin Anda uji pencariannya.

  8. Opsional: Pilih faset untuk ditampilkan di samping hasil, lalu klik OK untuk menerapkannya.

    Faset yang Anda pilih digunakan untuk membuat daftar filter faset yang muncul di bagian Add facet setelah Anda melakukan penelusuran awal. Filter faset ini dapat menyertakan faset selain yang dipilih pada langkah ini, seperti faset dinamis.

  9. Klik Jelajahi pratinjau atau tekan enter di kolom input mana pun untuk melihat hasilnya.

    Hasil ditampilkan dengan gambar thumbnail yang tersedia.

  10. Opsional: Klik ikon Grid atau ikon List untuk mengganti tampilan hasil Anda di pratinjau.

  11. Opsional: Jika Anda memilih faset untuk muncul bersama hasil, pilih satu atau beberapa nilai faset dari daftar faset untuk memfilter hasil menurut nilai tersebut. Hasil akan otomatis diperbarui setelah dipilih.

    Saat Anda memilih beberapa nilai dari faset yang sama, nilai tersebut akan diterapkan sebagai operator OR, dan nilai di seluruh faset yang berbeda diterapkan seperti operator AND. Misalnya, setelah memilih faset "color" dan "material", Anda dapat memfilter hasil penelusuran dengan memilih nilai warna "blue" dan "gold", serta nilai bahan "cotton" dan "polyester". Hasil Anda harus memiliki atribut "biru" atau "emas", dan juga harus memiliki "katun" atau "poliester" sebagai atribut.

Untuk melihat halaman Details untuk konfigurasi penayangan yang sedang Anda lihat pratinjaunya, klik View serving config di kolom Select serving config.