แนวทางปฏิบัติแนะนำสำหรับการค้นหาเพื่อส่งออกข้อมูลจำนวนมาก
ใช้ฟังก์ชันการรวมข้อมูลเสมอ
เนื่องจากไม่มีการรับประกันว่าจะมีการรวบรวมข้อมูลในตารางตามวันที่, URL, เว็บไซต์ หรือชุดคีย์ใดๆ ดังนั้น คุณจึงควรรวมข้อมูลช่องต่างๆ (ผลรวม จำนวน และอื่นๆ) เสมอเพื่อให้มั่นใจว่าค่าต่างๆ ของแถวจะรวมอยู่ในข้อมูลที่ส่งออก เช่น ตารางอาจมีหลายแถวที่มีการค้นหา "แมวอ้วน" ดังนี้
การค้นหา วันที่ ประเภทการค้นหา การแสดงผล ... แมวอ้วน 10-10-2022 เว็บ 1,000 แมวอ้วน 10-10-2022 เว็บ 200 แมวอ้วน 10-10-2022 รูปภาพ 5,000
การค้นหาแค่เพียงคำว่า "แมวอ้วน" แม้จะเป็นวันที่และประเภทการค้นหาที่เจาะจงก็อาจมีแถวข้อมูลหลายแถวได้ คุณจึงควรรวบรวมข้อมูลตามตัวอย่างต่อไปนี้เพื่อดูผลรวมของจำนวนการแสดงผล
/* BAD way to see most popular query: will get only 1 row per query */ SELECT query, impressions FROM searchconsole.searchdata_site_impression ORDER BY 2 DESC LIMIT 1; ผลลัพธ์ที่ได้ fat cats 5000 /* RIGHT way to see the most popular query */ SELECT query, SUM(impressions) FROM searchconsole.searchdata_url_impression WHERE query != '' /* Filter out anonymized queries */ GROUP BY query ORDER BY 2 DESC LIMIT 1; ผลลัพธ์ที่ได้ fat cats 6200
จำกัดการค้นหาตามวันที่เพื่อประหยัดค่าใช้จ่ายในการประมวลผล
โปรดทราบว่าเมื่อเรียกใช้การค้นหาใน BigQuery ระบบจะเรียกเก็บเงินคุณสำหรับการดำเนินการดังกล่าวและตารางอาจมีขนาดใหญ่ ตารางที่ส่งออกจะแบ่งพาร์ติชันตามวันที่ ซึ่งช่วยให้จำกัดการสแกนอินพุตข้อมูลเฉพาะวันที่สนใจได้อย่างมีประสิทธิภาพ วิธีนี้ช่วยให้เว็บไซต์ขนาดใหญ่ประหยัดค่าใช้จ่ายในการค้นหาข้อมูลได้ วิธีที่ดีในการลดค่าใช้จ่ายในการค้นหาคือการใช้อนุประโยค WHERE เพื่อจำกัดช่วงวันที่ในตารางที่แบ่งพาร์ติชันวันที่แล้ว
กรองสตริงการค้นหาที่เป็นค่าว่างออก
คำค้นหาที่มีการลบข้อมูลระบุตัวบุคคลออกมักจะเป็นคำค้นหาที่พบบ่อยที่สุดในเว็บไซต์ ระบบจะรายงานคำค้นหาที่มีการลบข้อมูลระบุตัวบุคคลออกเป็นสตริงที่มีความยาวเป็น 0 ในตาราง หากต้องการดูคำค้นหาที่ได้รับความนิยมสูงสุดสำหรับเกณฑ์หนึ่งๆ ให้กรองค่าคำค้นหาที่มีความยาวเป็น 0 ออกจากการค้นหา SQL
ตัวอย่างการค้นหา
ด้านล่างนี้เป็นตัวอย่างการค้นหาที่จะช่วยให้คุณเตรียมพร้อมและใช้งานข้อมูลได้
ผลการค้นหาตามเว็บไซต์
สถิติทั้งหมดจากเว็บตามวัน (2 สัปดาห์ที่ผ่านมา)
SELECT data_date AS date, sum(impressions) AS impressions, sum(clicks) as clicks, sum(clicks) / sum(impressions) AS ctr, /* Added one below, because position is zero-based */ ((sum(sum_top_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_site_impression WHERE search_type = 'WEB' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY data_date ORDER BY date desc LIMIT 1000
คำค้นหายอดนิยมในเว็บบนอุปกรณ์เคลื่อนที่ในสหรัฐอเมริกาตามจำนวนคลิก (2 สัปดาห์ที่ผ่านมา)
SELECT query, device, sum(impressions) AS impressions, sum(clicks) AS clicks, sum(clicks) / sum(impressions) AS ctr, ((sum(sum_top_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_site_impression WHERE search_type = 'WEB' AND country = 'usa' AND device = 'MOBILE' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY clicks LIMIT 1000
ผลการค้นหาตาม URL
URL ยอดนิยมของ Discover ตามจำนวนคลิก (ในวันที่ระบุ)
SELECT url, sum(impressions), sum(clicks) FROM searchconsole.searchdata_url_impression WHERE search_type = 'DISCOVER' AND data_date = DATE(2022, 02, 01) GROUP BY url ORDER BY 3 LIMIT 1000
สถิติข้อความค้นหาและ URL ทั้งหมดสำหรับผลการค้นหาที่เป็นริชมีเดียจากคำถามที่พบบ่อย (2 สัปดาห์ที่ผ่านมา)
SELECT url, query, sum(impressions) AS impressions, sum(clicks) AS clicks, sum(clicks) / sum(impressions) AS ctr, ((sum(sum_position) / sum(impressions)) + 1.0) AS avg_position FROM searchconsole.searchdata_url_impression WHERE search_type = 'WEB' AND is_tpf_faq = true AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY clicks LIMIT 1000
การเข้าชมทั้งหมดตาม URL (2 สัปดาห์ที่ผ่านมา)
SELECT url, search_type, sum(impressions) as impressions, sum(clicks) as clicks FROM searchconsole.searchdata_url_impression WHERE data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1,2 ORDER BY 3 desc LIMIT 1000
การแสดงผลสำหรับการค้นหาที่มีคำว่า "your_brand" (2 สัปดาห์ที่ผ่านมา)
SELECT regexp_contains(query, 'your_brand') AS contains_brand, sum(impressions) AS impressions, sum(clicks) AS clicks FROM searchconsole.searchdata_url_impression WHERE search_type = 'WEB' AND data_date between DATE_SUB(CURRENT_DATE(), INTERVAL 14 day) and CURRENT_DATE() GROUP BY 1 ORDER BY 2 desc LIMIT 1000