Method: projects.databases.documents.partitionQuery

แบ่งพาร์ติชันการค้นหาโดยแสดงผลเคอร์เซอร์พาร์ติชันที่ใช้เรียกใช้การค้นหาพร้อมกันได้ เคอร์เซอร์พาร์ติชันที่แสดงผลคือจุดแยกที่ document.runQuery สามารถใช้เป็นจุดเริ่มต้น/จุดสิ้นสุดสำหรับผลการค้นหา

คำขอ HTTP

POST https://firestore.googleapis.com/v1beta1/{parent=projects/*/databases/*/documents}:partitionQuery

URL ใช้ไวยากรณ์การแปลง gRPC

พารามิเตอร์เส้นทาง

พารามิเตอร์
parent

string

ต้องระบุ ชื่อทรัพยากรระดับบนสุด ในรูปแบบ: projects/{projectId}/databases/{databaseId}/documents ระบบไม่รองรับชื่อทรัพยากรเอกสาร คุณจะระบุได้เฉพาะชื่อทรัพยากรฐานข้อมูลเท่านั้น

เนื้อหาของคำขอ

เนื้อหาของคำขอมีข้อมูลซึ่งมีโครงสร้างต่อไปนี้

การแสดง JSON
{
  "partitionCount": string,
  "pageToken": string,
  "pageSize": integer,

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
ช่อง
partitionCount

string (int64 format)

จำนวนจุดพาร์ติชันสูงสุดที่ต้องการ พาร์ติชันอาจแสดงในหน้าผลลัพธ์หลายหน้า ตัวเลขต้องเป็นค่าบวก จำนวนพาร์ติชันจริงที่แสดงผลอาจน้อยกว่านี้

เช่น อาจกำหนดให้น้อยกว่าจำนวนคำค้นหาพร้อมกันที่จะเรียกใช้ หรือในการเรียกใช้ไปป์ไลน์ข้อมูล 1 จำนวน โดยน้อยกว่าจำนวนผู้ปฏิบัติงานหรืออินสแตนซ์การประมวลผลที่ใช้ได้

pageToken

string

ค่า nextPageToken ที่แสดงผลจากการเรียกเอกสารไปยัง documents.partitionQuery ก่อนหน้าที่อาจใช้เพื่อรับชุดผลลัพธ์เพิ่มเติม ไม่มีการรับประกันการสั่งซื้อระหว่างชุดผลลัพธ์ ดังนั้น การใช้ผลลัพธ์หลายชุดจะต้องมีการรวมชุดผลลัพธ์ที่แตกต่างกัน

ตัวอย่างเช่น การเรียก 2 ครั้งถัดไปโดยใช้ pageToken อาจแสดงผลดังนี้

  • เคอร์เซอร์ B, เคอร์เซอร์ M, เคอร์เซอร์ Q
  • เคอร์เซอร์ A, เคอร์เซอร์ U, เคอร์เซอร์ W

หากต้องการได้ชุดผลลัพธ์ที่สมบูรณ์ซึ่งเรียงลำดับตามผลลัพธ์ของการค้นหาที่ส่งให้ document.partitionQuery ควรรวมชุดผลลัพธ์เข้าด้วยกัน ได้แก่ เคอร์เซอร์ A, เคอร์เซอร์ B, เคอร์เซอร์ M, เคอร์เซอร์ Q, เคอร์เซอร์ U, เคอร์เซอร์ W

pageSize

integer

จำนวนพาร์ติชันสูงสุดที่จะแสดงผลในการเรียกนี้ โดยขึ้นอยู่กับ partitionCount

ตัวอย่างเช่น หาก partitionCount = 10 และ pageSize = 8 การเรียกใช้ documents.partitionQuery แรกจะแสดงผลเป็น 8 พาร์ติชันและ nextPageToken หากมีผลลัพธ์เพิ่มเติม การเรียกใช้ document.partitionQuery ครั้งที่ 2 จะส่งกลับพาร์ติชันสูงสุด 2 พาร์ติชัน เพื่อให้มีทั้งหมด 10 ส่วนที่ระบุใน partitionCount

ฟิลด์สหภาพ query_type การค้นหาที่จะแบ่งพาร์ติชัน query_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
structuredQuery

object (StructuredQuery)

การค้นหาแบบมีโครงสร้าง ข้อความค้นหาต้องระบุคอลเล็กชันที่มีองค์ประกอบสืบทอดทั้งหมด และเรียงลำดับตามชื่อจากน้อยไปมาก ระบบไม่รองรับตัวกรองอื่นๆ ลำดับตาม ขีดจำกัด ออฟเซ็ต และเคอร์เซอร์เริ่มต้น/สิ้นสุด

ฟิลด์สหภาพ consistency_selector โหมดความสอดคล้องสำหรับคำขอนี้ หากไม่ได้ตั้งค่า ระบบจะใช้ความสอดคล้องขั้นสูงโดยค่าเริ่มต้น consistency_selector ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
readTime

string (Timestamp format)

อ่านเอกสารแบบเดียวกับ ณ เวลาที่ระบุ

โดยต้องเป็นการประทับเวลาที่แม่นยำในระดับไมโครวินาทีภายใน 1 ชั่วโมงที่ผ่านมา หรือหากเปิดใช้การกู้คืนช่วงเวลาอยู่ ก็อาจเป็นการประทับเวลาแบบเต็มนาทีภายในช่วง 7 วันที่ผ่านมาด้วย

การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขที่เป็นเศษส่วนได้สูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

เนื้อหาการตอบกลับ

การตอบกลับสำหรับ Firestore.PartitionQuery

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

การแสดง JSON
{
  "partitions": [
    {
      object (Cursor)
    }
  ],
  "nextPageToken": string
}
ช่อง
partitions[]

object (Cursor)

ผลลัพธ์การแบ่งพาร์ติชัน แต่ละพาร์ติชันคือจุดแยกที่ documents.runQuery จะใช้เป็นจุดเริ่มต้นหรือจุดสิ้นสุดสำหรับผลการค้นหาได้ คำขอ document.runQuery จะต้องดำเนินการด้วยการค้นหาเดียวกันกับที่ส่งให้กับคำขอ document.partitionQuery นี้ เคอร์เซอร์พาร์ติชันจะมีการจัดเรียงตามลำดับเดียวกันกับผลลัพธ์ของการค้นหาที่ส่งไปยัง document.partitionQuery

ตัวอย่างเช่น หากคำขอ document.partitionQuery แสดงผลเคอร์เซอร์พาร์ติชัน A และ B การเรียกใช้การค้นหา 3 ข้อความต่อไปนี้จะแสดงชุดผลลัพธ์ทั้งหมดของการค้นหาเดิม

  • คำถาม, สิ้นสุดที่ A
  • คำถาม, startAt A, endAt B
  • คำถาม, startAt B

ผลลัพธ์ที่ว่างเปล่าอาจบ่งชี้ว่าการค้นหามีผลลัพธ์น้อยเกินไปสำหรับการแบ่งพาร์ติชัน หรือระบบยังไม่รองรับการค้นหาดังกล่าวสำหรับการแบ่งพาร์ติชัน

nextPageToken

string

โทเค็นของหน้าเว็บที่อาจใช้เพื่อขอชุดผลลัพธ์เพิ่มเติมตามจำนวนที่ระบุโดย partitionCount ในคำขอ documents.partitionQuery หากเว้นว่างไว้ คุณจะไม่เห็นผลลัพธ์เพิ่มเติม

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth อย่างใดอย่างหนึ่งต่อไปนี้

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตรวจสอบสิทธิ์