ทำไม Google ถึงเร็วกว่าการค้นหาฮาร์ดไดรฟ์


251

เมื่อฉันค้นหาไฟล์ด้วย HD ใน Windows 7 หรือ Windows XP จะใช้เวลาสักครู่เพื่อให้กระบวนการเสร็จสิ้น ถ้าฉันกรอกข้อความค้นหาใน Google คำตอบก็คือบนหน้าจอของฉันเป็นมิลลิวินาที

Google จะค้นหาอินเทอร์เน็ตได้อย่างไรซึ่งมีขนาดใหญ่กว่าฮาร์ดไดรฟ์ของฉันหลายเท่าเร็วกว่าระบบปฏิบัติการของฉันที่สามารถค้นหาคอมพิวเตอร์ของฉันได้ มันเป็นเพียงเรื่องของการคำนวณพลังงานและอัลกอริทึมที่ถูกต้อง?


99
คุณได้ลองทำดัชนีไฟล์ทั้งหมดในไดรฟ์และค้นหาเฉพาะดัชนีหรือไม่ ลองทุกอย่างและดู
Karan

11
Google Desktop "ใช้แล้ว" ที่จะทำสำหรับ Windows ได้แก่ ...
rogerdpack

14
Google ค้นหาผ่านดัชนีที่เก็บไว้ใน RAM ไม่ใช่ผ่านไฟล์ในฮาร์ดไดรฟ์
Ari

13
ดัชนีมีความสำคัญ แต่ Google ยังใช้อัลกอริทึมลดแผนที่เพื่อดำเนินการชุดของการดำเนินงานขนานอย่างหนาแน่น ไม่ว่าคุณจะมีหลายคอร์ในคอมพิวเตอร์ของคุณฉันรับประกันได้ว่า Google มีอีกมากมาย
Adam Wuerl

41
ไม่มีข้อ จำกัด ในการใช้งานการค้นหาเดสก์ทอปจากการใช้การจัดทำดัชนี อย่างไรก็ตามโปรดจำไว้ว่า Google มีเงินสดเพียงพอสำหรับก) CPU / เซิร์ฟเวอร์ที่ทำงานเร็วมากจำนวนมากเพื่อทำการสืบค้นแบบขนาน b) RAM เร็วมากเพื่อหลีกเลี่ยงการเข้าถึงดิสก์ c) ฮาร์ดไดรฟ์จำนวนมากเร็วกว่าที่คุณใช้ d) วิศวกรที่ชาญฉลาดจำนวนมากเพื่อปรับแต่งอัลกอริทึมที่เกี่ยวข้อง (เช่นการแคชผลลัพธ์สำหรับ (มาก) การค้นหาที่ใช้บ่อยและอื่น ๆ อีกมากมาย) ไม่ใช่คำถาม "อย่างใดอย่างหนึ่ง" อย่างใดอย่างหนึ่ง แต่เป็นการแสดงทั้งหมดในคอนเสิร์ต
millimoose

คำตอบ:


211

Google ไม่ได้ค้นหาอินเทอร์เน็ต: กำลังค้นหาดัชนี Google มีเซิร์ฟเวอร์ฟาร์มขนาดใหญ่ที่สแกนและทำดัชนีอินเทอร์เน็ตอยู่ตลอดเวลา กระบวนการนี้ใช้เวลานานพอ ๆ กับการค้นหาฮาร์ดไดรฟ์ที่ยังไม่ได้สร้างของคุณ ใน Windows 7 มีตัวเลือกในการทำดัชนีฮาร์ดไดรฟ์ของคุณ กระบวนการนี้จะใช้เวลาสักครู่ในตอนแรก แต่เมื่อมันเริ่มทำงานและผลลัพธ์ของการค้นหาจะเกิดขึ้นทันที

หากคุณต้องการทราบเพิ่มเติมเกี่ยวกับวิธีการค้นหาของ Google คุณสามารถอ่านบทความของ Google " วิธีการทำงานของการค้นหา " หรืออ่านบทความ " วิธีการทำงาน: วิธีการทำงานของ Google "


46
ย่อหน้าสุดท้าย: ลิงค์นี้มีอำนาจมากขึ้นและโดยรวมดีขึ้น
ulidtko

4
ให้อภัยความอยากรู้ของฉัน แต่ไม่มีระบบไฟล์ที่จัดทำดัชนีไฟล์บนดิสก์อยู่แล้ว? สิ่งที่คุณเห็นใน file explorer ของคุณเป็นเพียงดัชนีของลิงก์ไปยังเซกเตอร์กายภาพจริงบนดิสก์หรือไม่ ทำไมเราถึงต้องทำดรรชนีมากขึ้น ?
Adi

9
@ เพิ่มดัชนีระบบไฟล์ถูกออกแบบมาเพื่อค้นหาตำแหน่งที่จัดเก็บไฟล์บนสื่อบันทึกจริง มันเหมือนกับดัชนีของหนังสือที่บอกให้คุณทราบว่าหน้าใดเริ่มต้นบท ดัชนีการค้นหาออกแบบมาเพื่อค้นหาเนื้อหา ดัชนีการค้นหาที่ดีไม่เพียง แต่จัดทำดัชนีชื่อไฟล์ แต่ยังรวมถึงเนื้อหาของประเภทไฟล์ที่รู้จักเช่น pdf, doc, html, ... ดัชนีขั้นสูงใช้คำพ้องความหมายเช่นกันดังนั้นหากคุณค้นหาคำว่า "car" ก็อาจพบผลลัพธ์ด้วย คำว่า "รถยนต์"
Simon

3
@Adnan ระบบไฟล์ไม่ได้เป็น "ดัชนี" จริงๆเพียงแค่ต้นไม้ของชื่อไฟล์ การค้นหาแผนผังดังกล่าวนั้นไม่เร็วนักเนื่องจากโครงสร้างของมันไม่เหมาะสำหรับการค้นหา OTOH google (และฐานข้อมูล) ใช้โครงสร้างดัชนีที่เรียงลำดับเฉพาะซึ่งทำให้การค้นหารายการเร็วขึ้น ถึงแม้ว่าการค้นหาทั้งหมดจะไม่ได้รับประโยชน์จากดัชนีดังกล่าวและจะช้า (er)
PiRX

8
@Adnan ในความเป็นจริงต้นไม้ FS นั้นปรับให้เหมาะกับการค้นหา มันถูกออกแบบมาเพื่อให้ที่อยู่ของสถานที่ที่รู้จัก จากรูทโหนดของคุณสิ่งที่คุณจะได้รับคือรายการของไดเรกทอรีและไฟล์ที่อยู่ใต้รูท ทุกไดเรกทอรีเพิ่งรู้เกี่ยวกับไฟล์ในนั้นและไดเรกทอรีด้านล่าง การเข้าถึงไฟล์พา ธ ที่รู้จักนั้นมีความรวดเร็วมากและมีความยืดหยุ่นสูง แต่ไม่มีรายชื่อไฟล์ที่จะค้นหาทั่วโลก คุณต้องสืบหาผ่านแผนผังไดเรกทอรีเสมอและนั่นทำให้เป็นการค้นหาที่แตกต่างกันมากมาย
Phoshi

71

Google เป็นเหมือนการค้นหาที่อยู่หน้าเหลืองเพื่อหาที่อยู่ (จัดทำดัชนี) การค้นหาของ Windows นั้นคล้ายกับการขับรถไปรอบ ๆ ตรวจสอบหมายเลขบนอาคาร (ไม่ใช่แบบดัชนี)

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

โดยพื้นฐานแล้วมันคืองานทั้งหมดขององค์กรที่ทำก่อนการค้นหาที่รวดเร็ว

FYI: เมื่อค้นหาตำแหน่งที่จัดทำดัชนีการค้นหาหน้าต่างอาจตอบสนองได้


5
หรือ: การสแกนหนังสือเรียนและดูสารบัญ (รายละเอียด)
bobobobo

36

ธุรกิจของ Google คือการค้นหา (และแสดงโฆษณา) และมุ่งเน้นไปที่สิ่งนั้น มีหลายสิ่งที่ Google ทำเพื่อให้แน่ใจว่าข้อมูลจะถูกส่งคืนให้คุณอย่างรวดเร็ว:

  • ก่อนอื่นจะใช้MapReduceและPageRankเพื่อสร้างดัชนีที่ครอบคลุมของเวิลด์ไวด์เว็บ อัปเดตเป็นประจำเพื่อให้ผลลัพธ์มีความสดใหม่
  • ดัชนีนั้นได้รับการแจกจ่ายและทำซ้ำในเซิร์ฟเวอร์จำนวนมากของ Google
  • ข้อความค้นหาของคุณจะถูกแยกข้ามหลายเซิร์ฟเวอร์เพื่อสร้างผลลัพธ์ที่ส่งคืน สิ่งนี้ทำให้กระบวนการถูกขนานอย่างมาก
  • คิวรีและผลลัพธ์ทั่วไปถูกแคชลดความจำเป็นในการค้นหาทั้งหมด

ดูลิงค์นี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของการค้นหา

การค้นหาฮาร์ดไดรฟ์ที่ไม่มีดัชนีจะต้องอ่านไฟล์ทุกไฟล์ในไดรฟ์และอาจใช้เวลานาน

นอกจากนี้คุณสามารถนึกถึงทั้งระบบไฟล์และดัชนีเป็นแผนผัง ในระบบไฟล์รูทของทรีเป็นโฟลเดอร์ระดับบนสุดและสามารถมีกิ่ง (โฟลเดอร์) หรือใบไม้ (ไฟล์) ในโฟลเดอร์เดียว แต่ละสาขาสามารถมีสาขาย่อยสำหรับโฟลเดอร์และออกเพิ่มเติมสำหรับไฟล์เพิ่มเติม ในการค้นหาโครงสร้างนี้คุณต้อง 'เดิน' สาขาทั้งหมด (และสาขาย่อย) เพื่อค้นหาใบไม้ที่คุณกำลังมองหา ดัชนีพลิกลำดับชั้นนี้รอบ ๆ ฐานจะกลายเป็นตัวอักษรและสาขาย่อยทั้งหมดการปรับแต่งเพิ่มเติมเกี่ยวกับเรื่องนี้ ใบไม้เป็นที่ตั้งของรายการที่คุณกำลังมองหา การค้นหาโครงสร้างนี้ช่วยให้คุณตัด (ยกเว้น) ส่วนของต้นไม้ขนาดใหญ่ (เช่นตัวอักษรตัวแรกของคำค้นหาของคุณช่วยให้คุณตัด 25 สาขาอื่นได้ทันที)


30

ประมาณ 4 ปีที่แล้วฉันถามตัวเองด้วยคำถามเดียวกัน แต่ในขณะที่ฉันทำวิจัยฉันก็อ่านว่านอกเหนือจากข้อเท็จจริงที่ว่าพวกเขาจ้างสิ่งที่ดีที่สุดที่ดีที่สุดเพื่อหาอัลกอริธึมการค้นหาที่ซับซ้อนที่สุดและทั้งหมด

หนึ่งในการออกแบบที่สำคัญที่พวกเขาใช้นั้นคล้ายคลึงกับแนวคิดของการลดแผนที่ที่ฉันคิด คุณมีคอมพิวเตอร์ราคาถูกจำนวนมากในฟาร์ม ปล่อยให้คอมพิวเตอร์เหล่านี้มีเนื้อที่ว่างบนฮาร์ดดิสก์เพียง 80 กิ๊กและผลักอย่างหนักเพื่อให้มี RAM 16 กิ๊กหรือดีกว่า 32 กิ๊กแรมบนคอมพิวเตอร์เหล่านี้ (มากที่สุดเท่าที่จะทำได้) โปรดจำไว้ว่าพวกเขาเชื่อมต่อผ่านระบบที่ซับซ้อนบางอย่างที่พวกเขาออกแบบ แต่แนวคิดสำคัญที่นี่คือเมื่อมีการส่งแบบสอบถามมันจะถูกส่งไปยังระบบของพวกเขาซึ่งจะพยายามค้นหาข้อมูลสดใน RAM โปรดทราบว่าพวกเขามีคอมพิวเตอร์ราคาถูกจำนวนมากเหล่านี้ และเนื่องจากข้อมูลอยู่ใน RAM จึงพบว่าเร็วกว่ามากในฮาร์ดดิสก์ แต่อย่าลืมว่าพวกเขามีระบบที่ซับซ้อน (การจัดทำดัชนีและอัลกอริธึมเหล่านั้น) ที่ช่วยได้มาก

และข้อมูลนี้ไม่จำเป็นต้องใหม่เพราะเรารู้ว่า Google เก็บทุกอย่างไว้ ดังนั้นสิ่งที่ควรอยู่ใน RAM สามารถใช้หลักการเดียวกันกับต้นไม้ต้นหนามรักษาสิ่งที่ผู้คนเคยค้นหามากที่สุดใน RAM และล้างข้อมูลที่มีการค้นหาน้อยที่สุดลงในฮาร์ดดิสก์

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

  • พลังในการทำนายจากการค้นหาอื่น ๆ
  • ข้อมูลมีแนวโน้มมากที่สุดใน RAM ซึ่งเรารู้ว่าเร็วกว่า
  • ใช้หลายระบบเพื่อแบ่งและพิชิต
  • การค้นหาเป็นสิ่งสำคัญอันดับแรก

แน่นอนฉันอาจผิด แต่สิ่งนี้สมเหตุสมผลสำหรับฉัน และฉันก็มีความสุขกับสิ่งที่เรียนรู้


7
คุณตอกย้ำในบางสิ่งที่คนอื่นคิดถึงโปสเตอร์ยอดนิยมมากกว่า Google ไม่ได้ค้นหาทุกอย่างบ่อยครั้ง ไม่แน่นอนบนอินเทอร์เน็ตทั้งหมดและไม่ใช่ทุกอย่างในแคชของตัวเอง ยิ่งไปกว่านั้นเมื่อคุณค้นหาใน Google.com การค้นหาจริงจะไม่เกิดขึ้นแบบเรียลไทม์เพียงคัดลอกและแสดงผลการค้นหาอย่างรวดเร็วซึ่งได้รับการผลิตและจัดระเบียบในเดือนที่ผ่านมาโดย Google มันซับซ้อนมากในการอธิบายกระบวนการผลิต / การจัดระเบียบ แต่อาจเรียกได้ว่า "การจัดทำดัชนี" อย่างคลุมเครืออย่างที่ใครบางคนพูด
โจเซฟไมเออร์ส

มันซับซ้อนมากที่จะอธิบายกระบวนการ / การจัดการผลิต ... ใช่นั่นคือสิ่งที่ฉันเรียกว่าเป็นส่วนที่ซับซ้อนของมัน ยกนิ้วขึ้นคุณสรุปได้ดี
แตะ

1
@JosephMyers google ทำดัชนีอย่างต่อเนื่อง ค้นหาคำถามที่ถามเกี่ยวกับ SuperUser ก่อนหน้านี้ในวันนั้น (เช่น. google.com/search?q=google+faster+than+a+hard+drive ) และมันจะปรากฏในผลลัพธ์
แบรดแพ็ตตัน

@ Touch ฉันเห็นด้วยกับการค้นหาใน RAM นี่คือจุดที่สี่ในโพสต์ของฉันเกี่ยวกับแคช
แบรดแพ็ตตัน

@Brad Patton True ฉันต้องพูดถึงมันเพราะมันเป็นพื้นฐานของสิ่งที่ฉันเรียนรู้ และส่วนเกี่ยวกับการจัดทำดัชนีอย่างต่อเนื่องส่วนที่จัดทำดัชนีก็เป็นส่วนหนึ่งของการจัดระเบียบ ดังนั้นข้อความดังกล่าวถือว่าคุณค้นหาสิ่งที่ได้รับการจัดระเบียบและไม่ใช่สิ่งที่ถูกจัดทำดัชนีในขณะนี้ สำหรับสาเหตุที่แสดงผล Stackoverflow มีความน่าเชื่อถือมากกว่าเว็บไซต์หลายแห่งดังนั้นจึงเป็นเรื่องดีที่จะคิดให้ทำดัชนีบ่อยขึ้น นั่นเป็นเหตุผลที่มันปรากฏขึ้น หากไม่ใช่สำหรับสิ่งนั้นคุณจะต้องรอหนึ่งหรือสองวันก่อนที่สิ่งที่คุณค้นหาจะปรากฏขึ้น ฉันคิดว่านั่นคือสิ่งที่ Mr JosephMyers กำลังพูด
แตะ

20

Google ใช้ระบบการจัดทำดัชนีที่ซับซ้อนมากการทำงานแบบขนานและเทคนิคการทำสมดุลภาระจำนวนมากที่ไม่สามารถใช้กับคอมพิวเตอร์แบบสแตนด์อโลนมาตรฐาน มีความคล้ายคลึงกันน้อยมากระหว่างการค้นหาเว็บและการค้นหาไฟล์บนฮาร์ดดิสก์และ Google จะปรับให้เหมาะสมสำหรับกรณีการใช้งานเฉพาะของพวกเขา


4

ในปี 2004 พนักงาน Google บางรายได้ตีพิมพ์รายงาน: MapReduceและจากนั้นเป็นต้นมาพวกเขาปรับปรุงหลายร้อยครั้ง

นอกจากนี้พวกเขายังใช้Google File System (GFS)ซึ่งเป็นระบบไฟล์แบบกระจายเช่นHadoop Distribud File System (HDFS)และได้รับการปรับให้เหมาะสมที่สุดสำหรับวัตถุประสงค์ของพวกเขา นอกจากนี้เท่าที่ผมรู้ว่าสศคทำงานอาจจะพันเวลาเร็วกว่าHDFS


2

ฉันคิดว่าฉันจะเพิ่มในสิ่งนี้เพราะฉันมีคำถามนี้เมื่อไม่นานมานี้และพบวิดีโอที่ยอดเยี่ยมเหล่านี้ซึ่งอธิบายสิ่งที่ Google ทำบนพื้นผิว สนใจชม

Google บน Youtube 1
Google บน Youtube 2

เขาลึกขึ้นเล็กน้อย แต่ไม่ลึกพอที่คุณจะหลงทางด้านเทคนิค

ไชโย


1

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


0

หากต้องการตอบคำถามในระดับง่าย: ลองจินตนาการว่าคุณมีตำราเรียนที่มีดัชนีคำหลักอยู่ด้านหลัง

การค้นหาฮาร์ดดิสก์ (ไร้เดียงสาอย่างน้อยที่สุด) เปรียบเสมือนการอ่านหนังสือทีละหน้าสแกนแต่ละบรรทัดเพื่อหาคำหลักของคุณ

การใช้เสิร์ชเอ็นจิ้นอินเทอร์เน็ตนั้นเหมือนกับการค้นหาคำสำคัญในดัชนีจากนั้นเปลี่ยนเป็นหมายเลขหน้าที่ให้โดยตรง

แน่นอนว่าในความเป็นจริงมันซับซ้อนกว่านี้มาก ตัวอย่างเช่นคุณมักจะค้นหาข้อมูลประเภทต่าง ๆ ในฮาร์ดดิสก์ของคุณจากอินเทอร์เน็ต แต่สิ่งพื้นฐานที่จะไปคือเครื่องมือค้นหาใช้ดัชนี มันได้ผ่าน "หนังสือ" ไปแล้วคำต่อคำและได้รวบรวมรายการของคำเหล่านั้นพร้อมกับตำแหน่งที่จะค้นหาพวกเขาและมันได้จัดรายการในลักษณะที่สามารถค้นหาสิ่งต่าง ๆ ในนั้นได้อย่างรวดเร็ว .

ตัวอย่างเช่นคิดเกี่ยวกับการจัดทำดัชนีในหนังสือ ประการแรกมันมักจะจัดเรียงตามตัวอักษรและประการที่สองมันอาจมีส่วนหัวของตัวอักษร เมื่อคุณค้นหาคำในดัชนีคุณสามารถเห็นรายการคำที่ขึ้นต้นด้วยตัวอักษรที่คุณต้องการได้ทันที และเนื่องจากมีการเรียงลำดับรายการจึงง่ายต่อการค้นหาคำที่คุณต้องการภายในรายการหรือเพื่อบอกอย่างรวดเร็วหากไม่มีอยู่

เพื่อสรุปมันก็เหมือนกับฮาร์ดดิสก์ของคุณเพิ่งมีหนังสือเล่มหนึ่งในขณะที่เครื่องมือค้นหามีดัชนี แม้ว่าจะมีคนอื่นชี้ให้เห็น แต่ก็เป็นไปได้ที่จะใช้ซอฟต์แวร์เพื่อจัดทำดัชนีฮาร์ดดิสก์ของคุณและจากนั้นคุณสามารถใช้ดัชนีแทนของทั้งหมด


-1

ฉันเดาว่าหนึ่งในสาเหตุที่ Google ปรากฏAuto Completeและใช้งานAJAXคือปัญหาความเร็ว ตอนนี้เมื่อคุณพิมพ์คำจะถูกส่งเป็นพื้นหลังเพื่อให้ Google สามารถทำงานบางส่วนได้ในขณะที่คุณยังไม่เสร็จ นอกจากนี้ดัชนียังขึ้นอยู่กับชุดคำหลายคำ (ซึ่งคุณสามารถค้นหาเป็นคำแนะนำที่ด้านล่างของหน้า) ปัจจุบันเครือข่ายความเร็วสูงกว่าฮาร์ดไดรฟ์และดัชนีเหล่านั้นส่วนใหญ่อยู่ใน RAM ของเซิร์ฟเวอร์ในฟาร์มของพวกเขา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.