Penelusuran percakapan

Halaman ini menjelaskan fitur Penelusuran Terpandu di penelusuran percakapan Vertex AI Search untuk commerce.

Penelusuran percakapan memungkinkan retailer memberikan pengalaman penelusuran yang lebih interaktif bagi pengguna mereka. Fitur penelusuran percakapan berfungsi sebagai bagian dari paket Penelusuran Terpandu, yang menguntungkan pelanggan dengan mempersempit kueri pengguna dan menampilkan produk yang relevan dengan lebih cepat.

Baca selengkapnya untuk mengetahui:

  • Cara kerja penelusuran percakapan
  • Pengalaman penayangan melalui API utama (kueri)
  • Pengalaman administrator melalui API dan konsol kontrol

Cara kerja penelusuran percakapan

Jika diaktifkan, Vertex AI Search Percakapan untuk commerce akan memandu pembeli melakukan penelusuran produk di situs merchandiser menggunakan percakapan. Setelah kueri teks awal di Vertex AI Search untuk commerce, pembeli online akan mendapatkan pertanyaan lanjutan yang relevan dan opsi pilihan ganda. Pertanyaan lanjutan dapat dijawab oleh pengguna dalam teks bebas atau dengan mengklik opsi pilihan ganda percakapan.

Jika penelusuran percakapan diaktifkan di situs retailer, pertanyaan lanjutan akan mendorong percakapan yang terjadi hingga salah satu dari tiga skenario berikut terjadi:

  • Jumlah produk minimum yang telah dikonfigurasi sebelumnya tercapai (misalnya, percakapan tidak berguna jika hanya dua produk yang muncul).
  • Pengguna mengklik produk dan menambahkannya ke keranjang (tujuan).
  • Penelusuran dan penjelajahan retail kehabisan pertanyaan buatan AI.

Di balik layar

Penelusuran percakapan didasarkan pada interaksi pengguna dengan percakapan yang sedang berlangsung dalam beberapa putaran. Oleh karena itu, setidaknya ada respons kedua yang diperlukan agar penelusuran percakapan berfungsi. Pengguna akan melihat pertanyaan lanjutan dan jawaban yang disarankan dalam respons. Pengguna dapat merespons pertanyaan lanjutan ini dengan memasukkan jawaban atau mengklik jawaban yang disarankan (opsi pilihan ganda).

  • Pilihan ganda Opsi pilihan ganda berfungsi di balik layar seperti facet (filter jenis peristiwa), yang mempersempit kueri menggunakan pemfilteran. Di latar belakang, saat pengguna mengklik respons pilihan ganda, filter akan diterapkan ke kueri. Menerapkan filter menggunakan pilihan ganda percakapan sama dengan menerapkan filter yang sama menggunakan ubin atau aspek dinamis.

  • Teks bebas Jika pengguna merespons dalam teks bebas, kueri baru dan lebih sempit akan dibuat. Pelajari lebih lanjut cara penelusuran percakapan memperkaya pengambilan filter dan peristiwa pengguna dalam perjalanan pengguna.

Meningkatkan pengalaman Vertex AI Search untuk commerce dengan penelusuran percakapan menawarkan beberapa manfaat bagi retailer dan pengguna.

Mempersempit kueri dengan sangat sedikit klik

Penelusuran percakapan menawarkan cara cepat untuk memfilter 10.000 produk menjadi kurang dari 100 produk secara lebih efisien. Hal ini membuat pengguna lebih cenderung memutuskan untuk melakukan pembelian, sehingga meningkatkan rasio pendapatan per penelusuran.

Alternatif untuk faset dinamis

Faset dinamis dikaitkan dengan kueri luas yang memiliki pendapatan per kueri yang rendah. Pelanggan dapat merasa kewalahan saat melihat puluhan ribu hasil, sehingga berisiko meninggalkan pengalaman penelusuran mereka. Secara khusus, kueri penelusuran yang menampilkan jumlah produk tinggi memiliki pendapatan per kueri yang sangat rendah. Penelusuran percakapan dapat menyaring kueri dan dapat digunakan bersama dengan filter dinamis. Penelusuran percakapan menawarkan beberapa keunggulan dibandingkan dengan facet dinamis, yaitu lebih alami, lebih interaktif, dan menggunakan lebih sedikit ruang di halaman.

Pertanyaan generatif yang dapat disesuaikan dan disesuaikan dengan preferensi retailer

Penelusuran percakapan mendorong interaksi manusia dalam lingkaran dengan pertanyaan AI generatif dengan memungkinkan retailer mengedit, menimpa, atau membatalkan pilihan pertanyaan yang dibuat AI secara awal sesuai preferensi mereka, berdasarkan katalog yang diupload. Pertanyaan dapat diedit atau dinonaktifkan satu per satu atau secara massal di Konsol Penelusuran untuk Commerce atau API untuk menyesuaikan pertanyaan yang ingin ditampilkan dalam penelusuran.

Konsol: Pengalaman admin

Konsol ini memungkinkan retailer mengelola pertanyaan generatif dalam pengalaman percakapan Vertex AI Search untuk commerce. Pelajari lebih lanjut cara menggunakan pertanyaan generatif dalam penelusuran percakapan.

Langkah-langkah untuk menggunakan layanan pertanyaan generatif

  1. Memenuhi persyaratan data.

  2. Konfigurasikan penggantian manual.

  3. Aktifkan fitur.

  4. Pratinjau dan uji.

Persyaratan data

Di konsol, Penelusuran dan penjelajahan percakapan, di tab Pemeriksaan cakupan, atau di bagian Kualitas data > Percakapan, Anda akan melihat apakah data penelusuran Anda sudah siap untuk penelusuran percakapan.

Untuk mengaktifkan penelusuran percakapan, Anda harus memenuhi persyaratan data tertentu.

Tugas tersebut adalah:

  1. 1.000 kueri per hari: Setelah Anda mencapai nilai minimum pertama ini, rencana percakapan akan dibuat yang mengevaluasi input dan output Anda:
    • Input: jumlah filter dalam peristiwa
    • Output: cakupan percakapan
  2. Cakupan percakapan 25%: Dihitung oleh model Vertex AI Search untuk commerce, cakupan percakapan berarti persentase kueri yang memiliki satu pertanyaan. 25% kueri berbobot frekuensi (menurut volume) harus memiliki setidaknya pertanyaan pertama yang cocok.

Jika Anda belum memiliki cakupan percakapan sebesar 25%, tetapi memiliki prasyarat pertama 1.000 kueri per hari, pemeriksaan pemblokiran dan saran akan mulai diterapkan pada output dan input Anda. Di sini, Vertex AI Search untuk Commerce mulai menghitung persentase peningkatan filter yang diterapkan peristiwa pengguna untuk mencapai nilai minimum cakupan percakapan sebesar 25%. Makin banyak filter yang diupload, makin tinggi cakupan yang dicapai.

Untuk melihat kesiapan percakapan Anda:

  1. Buka tab Percakapan di halaman Kualitas data di konsol Penelusuran untuk Commerce. Di sini, Anda akan melihat pemeriksaan penting apakah minimal 25% kueri penelusuran memiliki minimal satu pertanyaan lanjutan, serta pemeriksaan saran tentang persentase peristiwa pengguna dengan filter yang valid yang diperlukan untuk mencapai sasaran cakupan percakapan tersebut.

  2. Jika Anda lulus pemeriksaan penting, dengan peristiwa pengguna yang memadai dengan filter yang valid, lanjutkan ke langkah berikutnya.

  3. Untuk mengontrol cara pertanyaan generatif ditayangkan, buka Halaman penelusuran dan jelajah percakapan di konsol Penelusuran untuk Commerce.

Kontrol pertanyaan generatif

AI generatif menulis pertanyaan untuk setiap atribut yang dapat diindeks dalam katalog, menggunakan nama dan nilai atribut untuk atribut sistem dan atribut kustom. Pertanyaan ini dibuat oleh LLM dan bertujuan untuk meningkatkan pengalaman penelusuran. Misalnya, untuk jenis furnitur, nilainya dapat berupa indoor atau outdoor, AI akan menyintesis pertanyaan tentang jenis furnitur yang Anda cari.

Setiap faset akan memiliki satu pertanyaan yang dihasilkan. Berdasarkan peristiwa pengguna historis dan engagement aspek dari data peristiwa penelusuran sebelumnya, pertanyaan diurutkan berdasarkan frekuensi yang diharapkan dari kemunculan pertanyaan. AI akan melihat pertanyaan di bagian atas terlebih dahulu, lalu menemukan hal yang relevan berdasarkan atribut. Daftar pertanyaan dibuat sekali. Jika ditambahkan, atribut baru akan ditampilkan dalam daftar dalam waktu dua jam.

  1. Buka halaman Penelusuran dan penjelajahan percakapan di konsol Penelusuran untuk Commerce.

    Buka halaman Penelusuran percakapan dan jelajahi.

  2. Di tab Kelola pertanyaan buatan AI, Anda dapat melihat semua pertanyaan yang diurutkan berdasarkan frekuensi penggunaannya, dalam frekuensi berbobot kueri, yang berarti frekuensi pertanyaan ditayangkan dengan kueri umum. Peringkat menggunakan kolom frekuensi di GenerativeQuestionConfig. Kolom ini bertanggung jawab untuk mengurutkan pertanyaan yang dibuat AI berdasarkan frekuensi penggunaannya.

  3. Anda dapat menggunakan opsi filter untuk memfilter pertanyaan.

  4. Centang kotak untuk mengaktifkan visibilitas pertanyaan untuk setiap atribut.

  5. Klik di akhir setiap baris untuk membuka panel edit untuk setiap pertanyaan.

Untuk melakukan pengeditan massal, ikuti langkah-langkah berikut:

  1. Centang atau hapus centang kotak di samping pertanyaan yang ingin Anda sertakan atau kecualikan dalam percakapan.

  2. Klik tombol Izinkan dalam percakapan atau Jangan izinkan dalam percakapan yang muncul di bagian atas daftar. Atau, untuk mengedit pertanyaan satu per satu, klik dan hapus centang atau centang ulang kotak di samping Diizinkan dalam percakapan di panel yang terbuka:

Teks alternatif

Cara menggunakan pertanyaan generatif dalam penelusuran percakapan

API layanan pertanyaan generatif menyediakan kontrol untuk mengurangi potensi inkonsistensi dalam output LLM. Kebijakan ini dapat dikelola dari konsol. Di sini, retailer juga dapat mengonfigurasi penelusuran percakapan dengan mengalihkan status diaktifkan dan menetapkan jumlah minimum produk yang diperlukan untuk memicunya.

Anda dapat menentukan pertanyaan, menentukan pertanyaan itu sendiri, kemungkinan jawaban, dan apakah pertanyaan diizinkan dalam percakapan. Setiap pertanyaan dapat dibuat oleh LLM atau diganti oleh retailer. Konsol ini mendukung peninjauan pertanyaan yang dibuat AI, sehingga retailer dapat menggantinya atau mengubah status percakapannya. Pertanyaan juga dapat diedit secara massal.

Mengedit pertanyaan individual

Anda juga dapat menggunakan kontrol untuk menyeleksi setiap pertanyaan. Sebaiknya lakukan ini sebelum Anda mengaktifkan penelusuran percakapan.

Untuk setiap pertanyaan, ada dua opsi. Klik di kolom terakhir untuk mengakses pertanyaan yang terlihat oleh panel pengguna:

  1. Nonaktifkan pertanyaan untuk semua kueri: Pertanyaan akan diaktifkan secara default. Hapus (atau centang lagi) kotak di samping Diizinkan dalam percakapan. Opsi ini akan melewati pertanyaan sepenuhnya. Retailer dapat memilih untuk menonaktifkan pertanyaan sepenuhnya jika tidak terkait dengan atribut yang dikueri atau dapat disalahartikan sebagai tidak pantas dalam beberapa hal (pertanyaan seperti "Apa ukuran gaun yang Anda cari?" dapat dianggap sebagai pertanyaan yang ingin tahu tentang berat badan pembeli.)
  2. Menulis ulang pertanyaan: Di panel, Anda dapat melihat pertanyaan yang dibuat AI, atribut yang terkait, dan nilai yang dimiliki atribut tersebut. Klik pensil untuk menulis ulang.

Setelah mengedit pertanyaan AI generatif di konsol, Anda siap mengaktifkan penelusuran percakapan.

Untuk mengaktifkan penelusuran percakapan, buka Halaman penelusuran percakapan dan jelajah di konsol Penelusuran untuk Commerce.

  1. Buka halaman Penelusuran dan penjelajahan percakapan di konsol Penelusuran untuk Commerce.

    Buka halaman Penelusuran percakapan dan jelajahi.

  2. Di tab Konfigurasi di Penelusuran untuk bisnis, Anda akan menemukan setelan seluruh sistem. Hal ini mencakup penetapan produk minimum yang diperlukan untuk mencocokkan kueri sebelum percakapan dapat terjadi, sehingga saat pertanyaan dibuat. Jumlah minimum ini adalah =>2. Nilai minimum dapat dikonfigurasi menjadi lebih tinggi, tetapi tidak boleh lebih rendah dari 2. Pertimbangkan jumlah produk di katalog yang ingin ditampilkan dalam penelusuran bagi pengguna untuk memulai percakapan. Misalnya, jumlah ideal untuk angka ini adalah satu baris per halaman untuk hasil penelusuran minimum guna memicu percakapan.

  3. Alihkan tombol ke aktif. Halaman ini juga memberikan informasi tentang status pemeriksaan pemblokiran dan saran Anda. Jika Anda memiliki cukup kueri penelusuran dengan setidaknya satu pertanyaan lanjutan, situs Anda kini mengaktifkan penelusuran percakapan.

Mengevaluasi dan menguji

Evaluasi memungkinkan Anda melihat pratinjau pengalaman penayangan dengan menjalankan penelusuran pengujian dan menguji pertanyaan Anda terhadap facet yang ditampilkan. Bagian konsol ini memberikan pratinjau pengalaman penayangan Anda dengan penelusuran percakapan.

Untuk melakukannya, temukan modul ini di tab Telusuri atau Jelajahi di halaman Evaluasi di konsol Penelusuran untuk Commerce.

  1. Buka halaman Evaluasi di konsol Penelusuran untuk Commerce.

    Buka halaman Evaluasi

  2. Di kolom Evaluasi Penelusuran, masukkan kueri pengujian yang masuk akal berdasarkan katalog yang telah Anda upload untuk ditelusuri. Klik Pratinjau penelusuran. Anda akan melihat hasil penelusuran dan jika telah mengaktifkan penelusuran percakapan, Anda akan melihat pertanyaan generatif di panel kanan.

  3. Di panel kanan, Anda akan melihat daftar pertanyaan pengujian.

Generative question API: Pengalaman admin

Bagian ini menjelaskan cara menggunakan API pertanyaan generatif untuk mengintegrasikan API penelusuran percakapan ke dalam UI Anda, mengelola pertanyaan generatif, dan menayangkan fitur di situs Anda.

Integrasi API

Objek:

  • GenerativeQuestionsFeatureConfig
  • GenerativeQuestionConfig
  • Layanan GenerativeQuestions
    • UpdateGenerativeQuestionsFeatureConfiguration
    • UpdateGenerativeQuestionConfig
    • ListGenerativeQuestionConfigs
    • GetGenerativeQuestionFeatureConfig
    • BatchUpdateGenerativeQuestionConfigs

Inti dari integrasi fitur ini terletak pada penentuan resource "question". Hal ini mencakup pertanyaan itu sendiri dan apakah pertanyaan tersebut diizinkan dalam percakapan. Pertanyaan ini secara default dibuat oleh LLM, tetapi dapat diganti oleh administrator.

Mengaktifkan fitur

Objek:

  • GenerativeQuestionsFeatureConfig

Objek ini adalah file konfigurasi kontrol untuk mengaktifkan fitur pertanyaan generatif guna mengelola pengalaman penayangan penelusuran percakapan secara keseluruhan. GenerativeQuestionsFeatureConfig mendapatkan informasi atribut metode GET dan apakah atribut tersebut dapat diindeks atau tidak dari katalog yang terkait dengan project.

Tombol feature_enabled menentukan apakah pertanyaan digunakan pada waktu penayangan. Fitur ini mengelola tombol tingkat atas di konsol.

Pelajari lebih lanjut cara mengaktifkan penelusuran percakapan di konsol.

Mengelola pertanyaan generatif

Objek:

  • GenerativeQuestionConfig

Fitur ini dapat diaktifkan percakapan dengan kolom boolean allowed_in_conversation. Class ini mengontrol konfigurasi untuk satu pertanyaan yang dibuat.

Kolom (perilaku kontrol untuk percakapan ditandai)
katalog string Digunakan untuk mengidentifikasi kumpulan atribut (dan pertanyaan ekstensi) yang tersedia. Semua nilai ini ditentukan dalam katalog. Kolom wajib diisi.
faset string Faset yang terkait dengan pertanyaan. Kolom wajib diisi.
generated_question string Pertanyaan default yang dihasilkan LLM. Hanya output.
final_question string Pertanyaan yang akan diajukan. Panjang maksimumnya adalah 300 byte. Kolom opsional.
example_values Nilai string berulang yang dapat digunakan untuk menjawab pertanyaan. Hanya output
frekuensi float Rasio seberapa sering pertanyaan diajukan. Hanya output.
allowed_in_conversation boolean Apakah pertanyaan diajukan pada waktu penayangan. Kolom ini bersifat opsional.

Pengalaman penayangan yang diaktifkan oleh fitur ini

Layanan pertanyaan generatif (service GenerativeQuestionService{...}) digunakan untuk mengelola pertanyaan yang dibuat LLM. Objek induknya adalah katalog, tempat objek ini mengambil informasi untuk menampilkan pertanyaan untuk katalog tertentu. Layanan ini digunakan untuk mengelola keseluruhan status fitur pertanyaan generatif, membuat perubahan individual atau batch, dan mengaktifkan atau menonaktifkan pertanyaan. Persyaratan data harus dipenuhi untuk berinteraksi dengan Service API dan pertanyaan harus diinisialisasi terlebih dahulu sebelum dapat dikelola.

Layanan berinteraksi dengan konfigurasi tingkat fitur dan tingkat pertanyaan dengan dua kumpulan pengendali:

  • Pemroses GenerativeQuestionsFeatureConfig (tingkat fitur):

    1. Pembaruan: memungkinkan Anda mengubah produk minimum dan mengaktifkan kolom
    2. Get: menampilkan objek
  • Pemroses Konfigurasi GenerativeQuestion (tingkat pertanyaan):

    1. Daftar: Menampilkan semua pertanyaan untuk katalog tertentu
    2. Pembaruan: Pengelolaan pertanyaan individual
    3. Pembaruan Massal: Pengelolaan pertanyaan yang dikelompokkan

Layanan akan menampilkan pertanyaan yang sesuai secara semantik berdasarkan kueri awal.

Pertanyaan lanjutan dihasilkan oleh model LLM dan dapat diganti. Pertanyaan ditampilkan berdasarkan kemungkinan pertanyaan tersebut akan digunakan oleh pelanggan dengan memanggil histori peristiwa penelusuran. Jika tidak ada histori peristiwa penelusuran, penggantian akan dilakukan pada log penelusuran retailer.

Pertanyaan yang berbeda akan dibuat berdasarkan kueri sebelumnya. Tidak ada bobot tetap. AI yang mendorong pertanyaan yang dihasilkan LLM belajar dari kueri, dan mengubah bobot untuk setiap kueri, sehingga "kemeja", misalnya, sangat mementingkan kategori, tetapi "kemeja merah XL" mementingkan kategori, ukuran, dan warna.

API konfigurasi penelusuran percakapan: Pengalaman penayangan

API konfigurasi penelusuran percakapan terintegrasi dengan API penelusuran Vertex AI API.

Integrasi API

API konfigurasi ConversationalSearchSpec untuk fitur ini berada di atas Vertex AI Search for commerce API yang ada. Untuk mendukung fitur baru, penelusuran percakapan, perubahan berikut telah dilakukan pada API utama (kueri) Vertex AI Search untuk commerce yang sudah ada:

  • ConversationalSearchSpec: Kolom opsional ini telah ditambahkan di SearchRequest, tetapi diperlukan jika Anda ingin menggunakan fitur penelusuran percakapan. Kolom ini menggunakan kembali kolom, kueri, dan filter SearchRequest. Class ini juga menyertakan kolom untuk mengaktifkan pertanyaan lanjutan yang ditayangkan kepada pengguna setelah kueri awal dan conversation_id untuk mempertahankan status percakapan antara klien dan server.

  • ConversationalSearchResult: File proto berisi informasi tambahan yang perlu ditampilkan untuk alur CRS percakapan di SearchResponse. Hal ini mencakup conversation_id, refined_query, additional_filters, follow_up_question, dan suggested_answers (lihat bagian Perjalanan pengguna).

Perjalanan pengguna

Alur percakapan berfungsi sebagai berikut: Pengguna memulai penelusuran dengan kueri awal dan tanda followup_conversation_requested ditetapkan ke "true". Kemudian, pengguna memilih jawaban atau memberikan input teks bebas, yang dikirim kembali ke API menggunakan kolom user_answer. API kemudian menyaring hasil penelusuran berdasarkan input pengguna dan memberikan pertanyaan lanjutan baru, yang memicu kueri lanjutan dan melanjutkan percakapan dalam beberapa giliran hingga pengguna menemukan apa yang mereka cari di situs retailer.

Dengan asumsi penelusuran percakapan diaktifkan di situs, perjalanan pengguna dan interaksi berikutnya dengan Vertex AI Search untuk commerce akan mengikuti jalur ini:

  • Langkah 1. Kueri pertama berasal dari pengguna
  • Langkah 1a. Permintaan percakapan tindak lanjut dikirim ke penelusuran
  • Langkah 1b. Respons Penelusuran awal dengan kueri yang dioptimalkan dan jawaban yang disarankan
  • Skenario 2: Pengguna memilih pilihan ganda
  • Langkah 2a. Filter jawaban yang dipilih dikirim ke penelusuran
  • Langkah 2b. Penelusuran dijalankan lagi dengan filter diterapkan
  • Skenario 3: Pengguna memilih teks bebas
  • Langkah 3a. Jawaban teks dikirim ke Penelusuran
  • Langkah 3b. Penelusuran dijalankan lagi dengan kueri yang diubah

Langkah 1. Kueri pertama berasal dari pengguna

conversational_search_spec: Pengenalan kolom ini dalam pesan SearchRequest memungkinkan sistem membedakan antara penelusuran percakapan dan penelusuran reguler. Penentuan ini memengaruhi apakah pengguna menerima respons percakapan tambahan, sehingga mempertahankan kemampuan penelusuran asli sekaligus memperluasnya untuk interaksi percakapan. Kolom conversational_search_spec dalam format pesan dan menyimpan detail yang diperlukan untuk alur percakapan, seperti jawaban pengguna, ID percakapan, dan apakah pengguna menginginkan percakapan lanjutan. Informasi ini memandu sistem dalam memahami konteks dan interaksi pengguna.

Jika boolean followup_conversation_requested Jika kolom ini ditetapkan ke BENAR, API akan merespons dengan kumpulan hasil awal dan pertanyaan lanjutan. Pengguna akan mendapatkan pengalaman percakapan dalam penelusurannya. Jika kolom ini ditetapkan ke "SALAH", tidak ada pertanyaan lanjutan yang ditayangkan.

Langkah 1a. Retailer → search: Initial query with conversation enabled

Langkah 1b. Penelusuran → retailer: ID percakapan, kueri yang dipertajam, pertanyaan lanjutan, jawaban yang disarankan

Skenario 2: Pengguna memilih opsi pilihan ganda

Jika pengguna memilih jawaban pilihan ganda yellow:

  • conversation_id dipulihkan dari penyimpanan sesi.
  • followup_conversation_requested ditetapkan ke benar.
  • String user_answer, menggunakan "selected_answer", yang berisi satu pasangan nilai kunci product_attribute_value, atau text_answer yang berisi input teks bebas nilai untuk menunjukkan pilihan pengguna. Kolom ini berada dalam kolom conversational_search_spec dan berisi pesan bertingkat lebih lanjut seperti "SelectedAnswer" untuk menentukan jenis input pengguna (teks atau jawaban yang dipilih).
  • Hasilnya akan kembali memanggil objek SearchResults dan kolomnya.
  • selected_answerKolom ini meneruskan atribut produk untuk memandu penelusuran percakapan.

Langkah 2a. Retailer → search: selected answer filter

Langkah 2b. Penelusuran → retailer: filters applied

Skenario 3: Pengguna memilih input teks bebas

Jika pengguna mengetik lavender:

  • conversation_id dipulihkan dari penyimpanan sesi
  • followup_conversation_requested disetel ke true
  • user_answer ditetapkan untuk input pengguna (dengan awalan text_answer:)

Langkah 3a. Retailer → search: text answer

Langkah 3b. Penelusuran → retailer: run with modified query