Method: query.search

Cloud Search Query API menyediakan metode penelusuran, yang menampilkan hasil yang paling relevan dari kueri pengguna. Hasilnya dapat berasal dari aplikasi Google Workspace, seperti Gmail atau Google Drive, atau dapat berasal dari data yang telah Anda indeks dari pihak ketiga.

Catatan: API ini memerlukan akun pengguna akhir standar untuk dijalankan. Akun layanan tidak dapat menjalankan permintaan Query API secara langsung; untuk menggunakan akun layanan guna menjalankan kueri, siapkan delegasi otorisasi seluruh domain Google Workspace.

Permintaan HTTP

POST https://cloudsearch.googleapis.com/v1/query/search

URL menggunakan sintaksis gRPC Transcoding.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "requestOptions": {
    object (RequestOptions)
  },
  "query": string,
  "pageSize": integer,
  "start": integer,
  "dataSourceRestrictions": [
    {
      object (DataSourceRestriction)
    }
  ],
  "facetOptions": [
    {
      object (FacetOptions)
    }
  ],
  "sortOptions": {
    object (SortOptions)
  },
  "queryInterpretationOptions": {
    object (QueryInterpretationOptions)
  },
  "contextAttributes": [
    {
      object (ContextAttribute)
    }
  ]
}
Kolom
requestOptions

object (RequestOptions)

Opsi permintaan, seperti aplikasi penelusuran dan zona waktu pengguna.

query

string

String kueri mentah. Lihat operator penelusuran yang didukung di Mempersempit penelusuran dengan operator

pageSize

integer

Jumlah maksimum hasil penelusuran yang akan ditampilkan di satu halaman. Nilai yang valid adalah antara 1 dan 100, inklusif. Nilai defaultnya adalah 10. Nilai minimum adalah 50 jika hasil di luar 2.000 diminta.

start

integer

Indeks awal hasil.

dataSourceRestrictions[]

object (DataSourceRestriction)

Sumber yang akan digunakan untuk membuat kueri. Jika tidak ditentukan, semua sumber data dari aplikasi penelusuran saat ini akan digunakan.

facetOptions[]

object (FacetOptions)

sortOptions

object (SortOptions)

Opsi untuk mengurutkan hasil penelusuran

queryInterpretationOptions

object (QueryInterpretationOptions)

opsi untuk menafsirkan kueri pengguna.

contextAttributes[]

object (ContextAttribute)

Atribut konteks untuk permintaan yang akan digunakan untuk menyesuaikan peringkat hasil penelusuran. Jumlah maksimum elemen adalah 10.

Isi respons

Jika berhasil, isi respons memuat data dengan struktur berikut:

Respons API penelusuran.

Representasi JSON
{
  "queryInterpretation": {
    object (QueryInterpretation)
  },
  "results": [
    {
      object (SearchResult)
    }
  ],
  "structuredResults": [
    {
      object (StructuredResult)
    }
  ],
  "spellResults": [
    {
      object (SpellResult)
    }
  ],
  "facetResults": [
    {
      object (FacetResult)
    }
  ],
  "hasMoreResults": boolean,
  "debugInfo": {
    object (ResponseDebugInfo)
  },
  "errorInfo": {
    object (ErrorInfo)
  },
  "resultCounts": {
    object (ResultCounts)
  },

  // Union field result_count can be only one of the following:
  "resultCountEstimate": string,
  "resultCountExact": string
  // End of list of possible types for union field result_count.
}
Kolom
queryInterpretation

object (QueryInterpretation)

Hasil interpretasi kueri untuk kueri pengguna. Kosong jika interpretasi kueri dinonaktifkan.

results[]

object (SearchResult)

Hasil dari kueri penelusuran.

structuredResults[]

object (StructuredResult)

Hasil terstruktur untuk kueri pengguna. Hasil ini tidak dihitung terhadap pageSize.

spellResults[]

object (SpellResult)

Saran ejaan untuk kueri.

facetResults[]

object (FacetResult)

Hasil faset berulang.

hasMoreResults

boolean

Apakah ada hasil penelusuran lainnya yang cocok dengan kueri.

debugInfo

object (ResponseDebugInfo)

Informasi proses debug tentang respons.

errorInfo

object (ErrorInfo)

Informasi error tentang respons.

resultCounts

object (ResultCounts)

Informasi jumlah hasil yang diperluas.

Kolom union result_count. Jumlah total hasil di semua sumber data yang diminta. Dihilangkan jika sumber standar disertakan dalam kumpulan sumber data yang dikueri. Jumlah hasil mungkin ditampilkan sebagai estimasi, bukan persis, dalam situasi berikut:

  • Jika kueri memiliki lebih dari 2 istilah dalam frasa, seperti "jumlah hasil sama persis" dalam tanda kutip.

  • Jika jumlah ACL hasil penelusuran unik yang akan dievaluasi terlalu besar untuk dihitung dalam latensi yang wajar.

Dalam kasus yang jarang terjadi, jika sistem tidak dapat menelusuri semua dokumen, jalankan ulang kueri. result_count hanya dapat berupa salah satu dari hal berikut:

resultCountEstimate

string (int64 format)

Perkiraan jumlah hasil untuk kueri ini.

resultCountExact

string (int64 format)

Jumlah hasil yang tepat untuk kueri ini.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/cloud_search.query
  • https://www.googleapis.com/auth/cloud_search

Untuk mengetahui informasi selengkapnya, lihat Panduan otorisasi.

QueryInterpretationOptions

opsi untuk menafsirkan kueri pengguna.

Representasi JSON
{
  "disableNlInterpretation": boolean,
  "enableVerbatimMode": boolean,
  "disableSupplementalResults": boolean
}
Kolom
disableNlInterpretation

boolean

Tanda untuk menonaktifkan interpretasi kueri dalam bahasa alami (NL). Defaultnya adalah false, Tetapkan ke true untuk menonaktifkan interpretasi bahasa alami. Interpretasi NL hanya berlaku untuk sumber data standar.

enableVerbatimMode

boolean

Aktifkan tanda ini untuk menonaktifkan semua pengoptimalan internal seperti interpretasi kueri bahasa alami (NL), pengambilan hasil tambahan, dan penggunaan sinonim, termasuk sinonim kustom. Penafsiran nl akan dinonaktifkan jika salah satu dari dua tanda tersebut benar.

disableSupplementalResults

boolean

Gunakan tanda ini untuk menonaktifkan hasil tambahan untuk kueri. Setelan hasil tambahan yang dipilih di tingkat SearchApplication akan diprioritaskan jika disetel ke True.

QueryInterpretation

Representasi JSON
{
  "interpretedQuery": string,
  "interpretationType": enum (QueryInterpretation.InterpretationType),
  "reason": enum (QueryInterpretation.Reason)
}
Kolom
interpretedQuery

string

Interpretasi kueri yang digunakan dalam penelusuran. Misalnya, kueri dengan intent bahasa alami seperti "email dari john" akan ditafsirkan sebagai "from:john source:mail". Kolom ini tidak akan diisi jika alasannya adalah NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY.

interpretationType

enum (QueryInterpretation.InterpretationType)

reason

enum (QueryInterpretation.Reason)

Alasan interpretasi kueri. Kolom ini tidak akan menjadi UNSPECIFIED jika jenis interpretasi bukan NONE.

QueryInterpretation.InterpretationType

Enum
NONE Penafsiran bahasa alami, maupun versi kueri yang lebih luas tidak digunakan untuk mengambil hasil penelusuran.
BLEND Hasil dari kueri asli digabungkan dengan hasil lainnya. Alasan penggabungan hasil lain ini dengan hasil dari kueri asli diisi di kolom 'Alasan' di bawah.
REPLACE Hasil dari kueri asli akan diganti. Alasan penggantian hasil dari kueri asli diisi di kolom 'Alasan' di bawah.

QueryInterpretation.Reason

Enum
UNSPECIFIED
QUERY_HAS_NATURAL_LANGUAGE_INTENT Interpretasi bahasa alami dari kueri digunakan untuk mengambil hasil penelusuran.
NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY Kemiripan istilah kueri dan dokumen digunakan untuk memperluas kueri secara selektif guna mengambil hasil penelusuran tambahan karena tidak ditemukan cukup hasil untuk kueri pengguna. Kueri yang ditafsirkan akan kosong untuk kasus ini.

SearchResult

Hasil yang berisi informasi yang diindeks untuk dokumen.

Representasi JSON
{
  "title": string,
  "url": string,
  "snippet": {
    object (Snippet)
  },
  "metadata": {
    object (Metadata)
  },
  "clusteredResults": [
    {
      object (SearchResult)
    }
  ],
  "debugInfo": {
    object (ResultDebugInfo)
  }
}
Kolom
title

string

Judul hasil penelusuran.

url

string

URL hasil penelusuran. URL berisi pengalihan Google ke item yang sebenarnya. URL ini ditandatangani dan tidak boleh diubah.

snippet

object (Snippet)

Penggabungan semua cuplikan (ringkasan) yang tersedia untuk hasil ini.

metadata

object (Metadata)

metadata hasil penelusuran.

clusteredResults[]

object (SearchResult)

Jika sumber dikelompokkan, berikan daftar hasil yang dikelompokkan. Hanya akan ada satu tingkat hasil yang dikelompokkan. Jika sumber saat ini tidak diaktifkan untuk pengelompokan, kolom ini akan kosong.

debugInfo

object (ResultDebugInfo)

Informasi proses debug tentang hasil penelusuran ini.

Cuplikan

Cuplikan hasil penelusuran, yang merangkum konten halaman yang dihasilkan.

Representasi JSON
{
  "snippet": string,
  "matchRanges": [
    {
      object (MatchRange)
    }
  ]
}
Kolom
snippet

string

Cuplikan dokumen. Cuplikan dokumen. Dapat berisi karakter HTML yang di-escape yang harus di-unescape sebelum dirender.

matchRanges[]

object (MatchRange)

Rentang yang cocok dalam cuplikan.

MatchRange

Rentang cuplikan yang cocok [start, end).

Representasi JSON
{
  "start": integer,
  "end": integer
}
Kolom
start

integer

Posisi awal pencocokan dalam cuplikan.

end

integer

Akhir pertandingan dalam cuplikan.

Metadata

metadata hasil penelusuran yang cocok.

Representasi JSON
{
  "source": {
    object (Source)
  },
  "mimeType": string,
  "thumbnailUrl": string,
  "owner": {
    object (Person)
  },
  "createTime": string,
  "updateTime": string,
  "fields": [
    {
      object (NamedProperty)
    }
  ],
  "displayOptions": {
    object (ResultDisplayMetadata)
  },
  "objectType": string
}
Kolom
source

object (Source)

Sumber yang diberi nama untuk hasil, seperti Gmail.

mimeType

string

Jenis MIME hasil penelusuran.

thumbnailUrl

string

URL thumbnail hasil.

owner

object (Person)

pemilik (biasanya pembuat) dokumen atau objek hasil penelusuran.

createTime

string (Timestamp format)

Waktu pembuatan dokumen atau objek ini dalam hasil penelusuran.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Tanggal terakhir diubah untuk objek dalam hasil penelusuran. Jika tidak ditetapkan dalam item, nilai yang ditampilkan di sini akan kosong. Jika updateTime digunakan untuk menghitung keaktualan dan tidak ditetapkan, nilai ini akan ditetapkan secara default ke 2 tahun dari waktu saat ini.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

fields[]

object (NamedProperty)

Kolom yang diindeks dalam data terstruktur, ditampilkan sebagai properti bernama generik.

displayOptions

object (ResultDisplayMetadata)

opsi yang menentukan cara menampilkan hasil penelusuran data terstruktur.

objectType

string

Jenis objek hasil penelusuran.

ResultDisplayMetadata

Representasi JSON
{
  "objectTypeLabel": string,
  "metalines": [
    {
      object (ResultDisplayMetadata.ResultDisplayLine)
    }
  ]
}
Kolom
objectTypeLabel

string

Label tampilan untuk objek.

metalines[]

object (ResultDisplayMetadata.ResultDisplayLine)

Konten metaline yang akan ditampilkan dengan hasilnya.

ResultDisplayMetadata.ResultDisplayLine

Kumpulan kolom yang membentuk baris yang ditampilkan

Representasi JSON
{
  "fields": [
    {
      object (ResultDisplayMetadata.ResultDisplayField)
    }
  ]
}
Kolom
fields[]

object (ResultDisplayMetadata.ResultDisplayField)

ResultDisplayMetadata.ResultDisplayField

Menampilkan Kolom untuk Hasil query.search

Representasi JSON
{
  "label": string,
  "operatorName": string,
  "property": {
    object (NamedProperty)
  }
}
Kolom
label

string

Label tampilan untuk properti.

operatorName

string

Nama operator properti.

property

object (NamedProperty)

Pasangan nilai nama untuk properti.

ResultDebugInfo

Informasi proses debug tentang hasilnya.

Representasi JSON
{
  "formattedDebugInfo": string
}
Kolom
formattedDebugInfo

string

Info debug umum yang diformat untuk ditampilkan.

StructuredResult

Hasil terstruktur yang ditampilkan sebagai bagian dari permintaan penelusuran.

Representasi JSON
{
  "person": {
    object (Person)
  }
}
Kolom
person

object (Person)

Representasi seseorang

SpellResult

Representasi JSON
{
  "suggestedQuery": string
}
Kolom
suggestedQuery

string

Saran ejaan kueri.

FacetResult

Respons aspek khusus sumber

Representasi JSON
{
  "sourceName": string,
  "objectType": string,
  "operatorName": string,
  "buckets": [
    {
      object (FacetBucket)
    }
  ]
}
Kolom
sourceName

string

Nama sumber yang menampilkan hasil faset. Tidak akan kosong.

objectType

string

Jenis objek yang hasil fasetnya ditampilkan. Dapat kosong.

operatorName

string

Nama operator yang dipilih untuk pembuatan facet. @see cloudsearch.SchemaPropertyOptions

buckets[]

object (FacetBucket)

FacetBuckets untuk nilai dalam respons yang berisi setidaknya satu hasil dengan filter yang sesuai.

FacetBucket

Bucket dalam suatu aspek adalah unit dasar operasi. Bucket dapat terdiri dari satu nilai ATAU rentang nilai yang berdekatan, bergantung pada jenis bucket kolom. FacetBucket saat ini hanya digunakan untuk menampilkan objek respons.

Representasi JSON
{
  "count": integer,
  "percentage": integer,
  "filter": {
    object (Filter)
  },
  "value": {
    object (Value)
  }
}
Kolom
count

integer

Jumlah hasil yang cocok dengan nilai bucket. Jumlah hanya ditampilkan untuk penelusuran jika akurasi jumlah terjamin. Cloud Search tidak menjamin jumlah aspek untuk kueri apa pun dan jumlah aspek mungkin hanya muncul secara berkala, bahkan untuk kueri yang identik. Jangan membuat dependensi pada keberadaan jumlah facet; sebagai gantinya, gunakan persentase jumlah facet yang selalu ditampilkan.

percentage

integer

Persentase hasil yang cocok dengan nilai bucket. Nilai yang ditampilkan antara [0-100], dan dibulatkan ke bawah menjadi bilangan bulat jika pecahan. Jika tidak ditampilkan secara eksplisit, nilai ini mewakili nilai persentase yang dibulatkan menjadi 0. Persentase ditampilkan untuk semua penelusuran, tetapi merupakan estimasi. Karena persentase selalu ditampilkan, Anda harus merender persentase, bukan jumlah.

filter

object (Filter)

Filter yang akan diteruskan dalam permintaan penelusuran jika bucket yang sesuai dipilih.

value

object (Value)

ResponseDebugInfo

Informasi proses debug tentang respons.

Representasi JSON
{
  "formattedDebugInfo": string
}
Kolom
formattedDebugInfo

string

Info debug umum yang diformat untuk ditampilkan.

ErrorInfo

Informasi error tentang respons.

Representasi JSON
{
  "errorMessages": [
    {
      object (ErrorMessage)
    }
  ]
}
Kolom
errorMessages[]

object (ErrorMessage)

ErrorMessage

Pesan error per respons sumber.

Representasi JSON
{
  "source": {
    object (Source)
  },
  "errorMessage": string
}
Kolom
source

object (Source)

errorMessage

string

ResultCounts

Informasi jumlah hasil

Representasi JSON
{
  "sourceResultCounts": [
    {
      object (SourceResultCount)
    }
  ]
}
Kolom
sourceResultCounts[]

object (SourceResultCount)

Informasi jumlah hasil untuk setiap sumber dengan hasil.

SourceResultCount

Informasi jumlah hasil per sumber.

Representasi JSON
{
  "source": {
    object (Source)
  },
  "hasMoreResults": boolean,

  // Union field result_count can be only one of the following:
  "resultCountEstimate": string,
  "resultCountExact": string
  // End of list of possible types for union field result_count.
}
Kolom
source

object (Source)

Sumber yang terkait dengan informasi jumlah hasil.

hasMoreResults

boolean

Apakah ada hasil penelusuran lainnya untuk sumber ini.

Kolom union result_count.

result_count hanya dapat berupa salah satu dari hal berikut:

resultCountEstimate

string (int64 format)

Estimasi jumlah hasil untuk sumber ini.

resultCountExact

string (int64 format)

Jumlah hasil yang tepat untuk sumber ini.