- คำขอ HTTP
- เนื้อหาคำขอ
- เนื้อหาการตอบกลับ
- ขอบเขตการให้สิทธิ์
- QueryInterpretationOptions
- QueryInterpretation
- QueryInterpretation.InterpretationType
- QueryInterpretation.Reason
- SearchResult
- ตัวอย่าง
- MatchRange
- ข้อมูลเมตา
- ResultDisplayMetadata
- ResultDisplayMetadata.ResultDisplayLine
- ResultDisplayMetadata.ResultDisplayField
- ResultDebugInfo
- StructuredResult
- SpellResult
- FacetResult
- FacetBucket
- ResponseDebugInfo
- ErrorInfo
- ErrorMessage
- ResultCounts
- SourceResultCount
- ลองใช้งาน
Cloud Search Query API มีวิธีการค้นหาซึ่งจะแสดงผลการค้นหาที่เกี่ยวข้องมากที่สุดจากคำค้นหาของผู้ใช้ ผลลัพธ์อาจมาจากแอปต่างๆ ของ Google Workspace เช่น Gmail หรือ Google ไดรฟ์ หรืออาจมาจากข้อมูลที่คุณจัดทําดัชนีจากบุคคลที่สามก็ได้
หมายเหตุ: API นี้ต้องใช้บัญชีผู้ใช้ปลายทางมาตรฐานเพื่อเรียกใช้ บัญชีบริการจะส่งคำขอ API การค้นหาโดยตรงไม่ได้ หากต้องการใช้บัญชีบริการในการค้นหา ให้ตั้งค่าการมอบสิทธิ์ทั่วทั้งโดเมนของ Google Workspace
คำขอ HTTP
POST https://cloudsearch.googleapis.com/v1/query/search
URL ใช้ไวยากรณ์การแปลง gRPC
เนื้อหาของคำขอ
เนื้อหาของคำขอมีข้อมูลที่มีโครงสร้างต่อไปนี้
การแสดง JSON |
---|
{ "requestOptions": { object ( |
ช่อง | |
---|---|
requestOptions |
ตัวเลือกคำขอ เช่น แอปพลิเคชันการค้นหาและเขตเวลาของผู้ใช้ |
query |
สตริงคำค้นหาดิบ ดูโอเปอเรเตอร์การค้นหาที่รองรับในหัวข้อจํากัดการค้นหาให้แคบลงด้วยโอเปอเรเตอร์ |
pageSize |
จำนวนผลการค้นหาสูงสุดที่จะแสดงในหนึ่งหน้า โดยค่าที่ใช้ได้จะอยู่ระหว่าง 1 ถึง 100 ค่าเริ่มต้นคือ 10 ค่าต่ำสุดคือ 50 เมื่อมีการขอผลลัพธ์ที่เกิน 2000 |
start |
ดัชนีเริ่มต้นของผลลัพธ์ |
dataSourceRestrictions[] |
แหล่งที่มาที่จะใช้สําหรับการค้นหา หากไม่ได้ระบุ ระบบจะใช้แหล่งข้อมูลทั้งหมดจากแอปพลิเคชันการค้นหาปัจจุบัน |
facetOptions[] |
|
sortOptions |
ตัวเลือกสำหรับการจัดเรียงผลการค้นหา |
queryInterpretationOptions |
เพื่อตีความข้อความค้นหาของผู้ใช้ |
contextAttributes[] |
แอตทริบิวต์บริบทสำหรับคำขอที่จะใช้ในการปรับการจัดอันดับผลการค้นหา จำนวนองค์ประกอบสูงสุดคือ 10 รายการ |
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้
การตอบกลับของ Search API
การแสดง JSON |
---|
{ "queryInterpretation": { object ( |
ช่อง | |
---|---|
queryInterpretation |
ผลลัพธ์การแปลคำค้นหาสำหรับการค้นหาของผู้ใช้ เว้นว่างไว้หากปิดใช้การแปลความหมายคำค้นหา |
results[] |
ผลลัพธ์จากคำค้นหา |
structuredResults[] |
ผลลัพธ์แบบมีโครงสร้างสำหรับการค้นหาของผู้ใช้ ผลลัพธ์เหล่านี้จะไม่นับรวมกับ pageSize |
spellResults[] |
การสะกดที่แนะนำสำหรับคำค้นหา |
facetResults[] |
ผลการค้นหาข้อมูลประกอบที่ซ้ำกัน |
hasMoreResults |
มีผลการค้นหาอื่นๆ ที่ตรงกับคำค้นหาหรือไม่ |
debugInfo |
ข้อมูลการแก้ไขข้อบกพร่องเกี่ยวกับการตอบกลับ |
errorInfo |
ข้อมูลข้อผิดพลาดเกี่ยวกับการตอบกลับ |
resultCounts |
ข้อมูลจำนวนผลลัพธ์ที่ขยาย |
ช่องการรวม
ในกรณีที่ระบบค้นหาในเอกสารทั้งหมดไม่ได้ ซึ่งเป็นกรณีที่พบได้น้อย ให้เรียกใช้การค้นหาอีกครั้ง |
|
resultCountEstimate |
จำนวนผลลัพธ์โดยประมาณสำหรับการค้นหานี้ |
resultCountExact |
จำนวนผลลัพธ์จริงสำหรับคำค้นหานี้ |
ขอบเขตการให้สิทธิ์
ต้องใช้ขอบเขต OAuth รายการใดรายการหนึ่งต่อไปนี้
https://www.googleapis.com/auth/cloud_search.query
https://www.googleapis.com/auth/cloud_search
สำหรับข้อมูลเพิ่มเติม โปรดดูที่คู่มือการให้สิทธิ์
QueryInterpretationOptions
เพื่อตีความข้อความค้นหาของผู้ใช้
การแสดง JSON |
---|
{ "disableNlInterpretation": boolean, "enableVerbatimMode": boolean, "disableSupplementalResults": boolean } |
ช่อง | |
---|---|
disableNlInterpretation |
ตั้งค่าสถานะเพื่อปิดใช้การแปลความหมายด้วยภาษาธรรมชาติ (NL) ของข้อความค้นหา ค่าเริ่มต้นคือ "เท็จ" ตั้งค่าเป็น "จริง" เพื่อปิดใช้การตีความภาษาธรรมชาติ การตีความ NL ใช้กับแหล่งข้อมูลที่กำหนดไว้ล่วงหน้าเท่านั้น |
enableVerbatimMode |
เปิดใช้แฟล็กนี้เพื่อปิดการเพิ่มประสิทธิภาพภายในทั้งหมด เช่น การตีความคำค้นหาในภาษาธรรมชาติ (NL) การดึงข้อมูลผลลัพธ์เสริม และการใช้คำพ้องความหมาย รวมถึงคำที่กำหนดเอง ระบบจะปิดใช้การตีความ Nl หากหนึ่งใน 2 แฟล็กใดเป็นจริง |
disableSupplementalResults |
ใช้แฟล็กนี้เพื่อปิดใช้ผลลัพธ์เสริมสำหรับการค้นหา การตั้งค่าผลลัพธ์เสริมที่เลือกที่ระดับ SearchApplication จะมีความสำคัญเหนือกว่าหากตั้งค่าเป็น True |
QueryInterpretation
การแสดง JSON |
---|
{ "interpretedQuery": string, "interpretationType": enum ( |
ช่อง | |
---|---|
interpretedQuery |
การตีความข้อความค้นหาที่ใช้ในการค้นหา เช่น คำค้นหาที่มีความตั้งใจเป็นภาษาธรรมชาติ เช่น "email from john" จะได้รับการแปลค่าเป็น "from:john source:mail" จะไม่มีการกรอกข้อมูลในฟิลด์นี้เมื่อเหตุผลคือ NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY |
interpretationType |
|
reason |
เหตุผลในการตีความข้อความค้นหา ช่องนี้จะไม่มีการระบุ UNSPECIFIED หากประเภทการแปลไม่ใช่ NONE |
QueryInterpretation.InterpretationType
Enum | |
---|---|
NONE |
ไม่มีการตีความภาษาธรรมชาติหรือการค้นหาแบบกว้างๆ เพื่อดึงผลการค้นหา |
BLEND |
ผลลัพธ์จากคำค้นหาเดิมจะผสมกับผลการค้นหาอื่นๆ เหตุผลในการรวมผลลัพธ์อื่นๆ เหล่านี้กับผลลัพธ์จากข้อความค้นหาเดิมจะอยู่ในช่อง "เหตุผล" ด้านล่าง |
REPLACE |
ระบบจะแทนที่ผลลัพธ์จากคำค้นหาเดิม เหตุผลในการแทนที่ผลลัพธ์จากข้อความค้นหาเดิมจะปรากฏในส่วน "เหตุผล" ด้านล่าง |
QueryInterpretation.Reason
Enum | |
---|---|
UNSPECIFIED |
|
QUERY_HAS_NATURAL_LANGUAGE_INTENT |
ข้อความค้นหาใช้การแปลความหมายภาษาธรรมชาติเพื่อดึงผลการค้นหา |
NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY |
ข้อความค้นหาและคำในเอกสารมีความคล้ายคลึงกันเพื่อเลือกขอบเขตของข้อความค้นหาให้กว้างขึ้นเพื่อดึงผลการค้นหาเพิ่มเติมเนื่องจากไม่พบผลลัพธ์ที่เพียงพอสำหรับการค้นหาของผู้ใช้ คำค้นหาที่ตีความแล้วจะว่างเปล่าสำหรับกรณีนี้ |
SearchResult
ผลลัพธ์ที่มีข้อมูลที่จัดทำดัชนีสำหรับเอกสาร
การแสดง JSON |
---|
{ "title": string, "url": string, "snippet": { object ( |
ช่อง | |
---|---|
title |
ชื่อของผลการค้นหา |
url |
URL ของผลการค้นหา URL มีการเปลี่ยนเส้นทาง Google ไปยังรายการจริง URL นี้มีลายเซ็นแล้วและไม่ควรเปลี่ยนแปลง |
snippet |
การต่อตัวอย่างข้อมูล (ข้อมูลสรุป) ทั้งหมดที่มีสำหรับผลลัพธ์นี้ |
metadata |
ข้อมูลเมตาของผลการค้นหา |
clusteredResults[] |
หากต้นทางเป็นคลัสเตอร์ ให้ระบุรายการผลลัพธ์ที่จัดกลุ่มไว้ ผลลัพธ์แบบคลัสเตอร์จะมีเพียงระดับเดียวเท่านั้น หากแหล่งที่มาปัจจุบันไม่ได้เปิดใช้สำหรับการจัดคลัสเตอร์ ช่องนี้จะว่างเปล่า |
debugInfo |
แก้ไขข้อบกพร่องเกี่ยวกับผลการค้นหานี้ |
ตัวอย่างข้อมูล
ตัวอย่างของผลการค้นหา ซึ่งสรุปเนื้อหาของหน้าผลลัพธ์
การแสดง JSON |
---|
{
"snippet": string,
"matchRanges": [
{
object ( |
ช่อง | |
---|---|
snippet |
ตัวอย่างข้อมูลของเอกสาร ตัวอย่างข้อมูลของเอกสาร อาจมีอักขระ HTML ที่มีการกำหนดเป็นอักขระหลีกซึ่งไม่ควรกำหนดเป็นอักขระหลีกก่อนที่จะแสดงผล |
matchRanges[] |
ช่วงที่ตรงกันในข้อมูลโค้ด |
MatchRange
ช่วงที่ตรงกันของข้อมูลโค้ด [start, end)
การแสดง JSON |
---|
{ "start": integer, "end": integer } |
ช่อง | |
---|---|
start |
ตำแหน่งเริ่มต้นของการจับคู่ในข้อมูลโค้ด |
end |
สิ้นสุดการจับคู่ในข้อมูลโค้ด |
ข้อมูลเมตา
ข้อมูลเมตาของผลการค้นหาที่ตรงกัน
การแสดง JSON |
---|
{ "source": { object ( |
ช่อง | |
---|---|
source |
แหล่งที่มาที่มีชื่อของผลลัพธ์ เช่น Gmail |
mimeType |
ประเภท Mime ของผลการค้นหา |
thumbnailUrl |
URL ภาพขนาดย่อของผลการค้นหา |
owner |
เจ้าของ (มักจะเป็นผู้สร้าง) เอกสารหรือออบเจ็กต์ของผลการค้นหา |
createTime |
เวลาที่สร้างเอกสารหรือออบเจ็กต์นี้ในผลการค้นหา การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: |
updateTime |
วันที่แก้ไขล่าสุดของออบเจ็กต์ในผลการค้นหา หากไม่ได้ตั้งค่าไว้ในรายการ ค่าที่ส่งคืนที่นี่จะว่างเปล่า เมื่อใช้ การประทับเวลาเป็น RFC3339 UTC "Zulu" โดยมีความละเอียดระดับนาโนวินาทีและมีเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง: |
fields[] |
ช่องที่จัดทำดัชนีใน Structured Data แสดงผลเป็นพร็อพเพอร์ตี้ชื่อทั่วไป |
displayOptions |
ซึ่งระบุวิธีแสดงผลการค้นหาข้อมูลที่มีโครงสร้าง |
objectType |
ประเภทออบเจ็กต์ของผลการค้นหา |
ResultDisplayMetadata
การแสดง JSON |
---|
{
"objectTypeLabel": string,
"metalines": [
{
object ( |
ช่อง | |
---|---|
objectTypeLabel |
ป้ายกำกับที่ปรากฏสำหรับออบเจ็กต์ |
metalines[] |
เนื้อหาเมตาไลน์ที่จะแสดงพร้อมผลลัพธ์ |
ResultDisplayMetadata.ResultDisplayLine
คอลเล็กชันของช่องที่ประกอบกันขึ้นเป็นบรรทัดที่แสดง
การแสดง JSON |
---|
{
"fields": [
{
object ( |
ช่อง | |
---|---|
fields[] |
ResultDisplayMetadata.ResultDisplayField
แสดงช่องสำหรับผลการค้นหา query.search
การแสดง JSON |
---|
{
"label": string,
"operatorName": string,
"property": {
object ( |
ช่อง | |
---|---|
label |
ป้ายกำกับที่ปรากฏสำหรับพร็อพเพอร์ตี้ |
operatorName |
ชื่อผู้ดำเนินการของพร็อพเพอร์ตี้ |
property |
คู่ค่าชื่อสำหรับพร็อพเพอร์ตี้ |
ResultDebugInfo
ข้อมูลการแก้ไขข้อบกพร่องเกี่ยวกับผลลัพธ์
การแสดง JSON |
---|
{ "formattedDebugInfo": string } |
ช่อง | |
---|---|
formattedDebugInfo |
ข้อมูลการแก้ไขข้อบกพร่องทั่วไปที่จัดรูปแบบสำหรับการแสดงผล |
StructuredResult
ผลลัพธ์ที่มีโครงสร้างที่แสดงเป็นส่วนหนึ่งของคำขอการค้นหา
การแสดง JSON |
---|
{
"person": {
object ( |
ช่อง | |
---|---|
person |
ภาพแทนบุคคล |
SpellResult
การแสดง JSON |
---|
{ "suggestedQuery": string } |
ช่อง | |
---|---|
suggestedQuery |
การสะกดที่แนะนำของข้อความค้นหา |
FacetResult
การตอบกลับข้อมูลประกอบที่เจาะจงเกี่ยวกับแหล่งที่มา
การแสดง JSON |
---|
{
"sourceName": string,
"objectType": string,
"operatorName": string,
"buckets": [
{
object ( |
ช่อง | |
---|---|
sourceName |
ชื่อแหล่งที่มาที่มีการแสดงผลข้อมูลประกอบ จะเว้นว่างไม่ได้ |
objectType |
ประเภทออบเจ็กต์ที่แสดงผลลัพธ์ข้อมูลประกอบ เว้นว่างได้ |
operatorName |
ชื่อของโอเปอเรเตอร์ที่เลือกสำหรับการประกอบ @ดู cloudsearch.SchemaPropertyOptions |
buckets[] |
FacetBuckets สำหรับค่าในการตอบกลับที่มีผลลัพธ์อย่างน้อย 1 รายการซึ่งมีตัวกรองที่เกี่ยวข้อง |
FacetBucket
ที่เก็บข้อมูลในข้อมูลประกอบคือหน่วยการทำงานพื้นฐาน ที่เก็บข้อมูลอาจประกอบด้วยค่าเดียวหรือช่วงของค่าที่ต่อเนื่องกัน ทั้งนี้ขึ้นอยู่กับประเภทของฟิลด์ที่ฝากข้อมูล ปัจจุบัน FacetBucket จะใช้สำหรับการส่งคืนออบเจ็กต์การตอบกลับเท่านั้น
การแสดง JSON |
---|
{ "count": integer, "percentage": integer, "filter": { object ( |
ช่อง | |
---|---|
count |
จำนวนผลลัพธ์ที่ตรงกับค่าที่เก็บข้อมูล ระบบแสดงผลการนับสำหรับการค้นหาเมื่อมั่นใจในความถูกต้องของการนับแล้วเท่านั้น Cloud Search ไม่รับประกันว่าจำนวนข้อมูลประกอบสำหรับการค้นหาและจำนวนข้อมูลประกอบใดๆ อาจปรากฏเป็นระยะๆ แม้ว่าจะเป็นคำค้นหาที่เหมือนกันก็ตาม อย่าสร้างทรัพยากร Dependency ตามการมีอยู่ของจำนวนข้อมูลประกอบ ให้ใช้เปอร์เซ็นต์การซ้อนทับข้อมูลประกอบ ซึ่งจะแสดงผลลัพธ์เสมอ |
percentage |
เปอร์เซ็นต์ของผลลัพธ์ที่ตรงกับค่าที่เก็บข้อมูล ค่าที่ส่งคืนจะอยู่ระหว่าง (0-100] และจะปัดเศษลงเป็นจำนวนเต็มหากเป็นเศษส่วน หากไม่มีการส่งกลับค่าอย่างชัดเจน ค่านี้จะแสดงค่าเปอร์เซ็นต์ที่ปัดเศษเป็น 0 ระบบจะแสดงเปอร์เซ็นต์สำหรับการค้นหาทั้งหมด แต่เป็นเพียงค่าประมาณ เนื่องจากระบบจะแสดงเปอร์เซ็นต์เสมอ คุณจึงควรแสดงผลเป็นเปอร์เซ็นต์แทนการนับ |
filter |
ตัวกรองที่จะส่งไปในคำขอการค้นหาหากเลือกที่เก็บข้อมูลที่เกี่ยวข้องไว้ |
value |
|
ResponseDebugInfo
ข้อมูลการแก้ไขข้อบกพร่องเกี่ยวกับการตอบกลับ
การแสดง JSON |
---|
{ "formattedDebugInfo": string } |
ช่อง | |
---|---|
formattedDebugInfo |
ข้อมูลการแก้ไขข้อบกพร่องทั่วไปที่จัดรูปแบบสำหรับการแสดงผล |
ErrorInfo
ข้อมูลข้อผิดพลาดเกี่ยวกับคำตอบ
การแสดง JSON |
---|
{
"errorMessages": [
{
object ( |
ช่อง | |
---|---|
errorMessages[] |
|
ErrorMessage
ข้อความแสดงข้อผิดพลาดต่อการตอบกลับแหล่งที่มา
การแสดง JSON |
---|
{
"source": {
object ( |
ช่อง | |
---|---|
source |
|
errorMessage |
|
ResultCounts
ข้อมูลจำนวนผลลัพธ์
การแสดง JSON |
---|
{
"sourceResultCounts": [
{
object ( |
ช่อง | |
---|---|
sourceResultCounts[] |
ข้อมูลจำนวนผลลัพธ์สำหรับแต่ละแหล่งที่มาที่มีผลลัพธ์ |
SourceResultCount
ข้อมูลจำนวนผลลัพธ์ตามแหล่งที่มา
การแสดง JSON |
---|
{ "source": { object ( |
ช่อง | |
---|---|
source |
แหล่งที่มาที่เชื่อมโยงกับข้อมูลจำนวนผลลัพธ์ |
hasMoreResults |
มีผลการค้นหาเพิ่มเติมสำหรับแหล่งที่มานี้หรือไม่ |
ช่องการรวม
|
|
resultCountEstimate |
จำนวนผลลัพธ์โดยประมาณสำหรับแหล่งที่มานี้ |
resultCountExact |
จำนวนผลลัพธ์ที่แน่นอนสำหรับแหล่งที่มานี้ |