ความจริงอย่างหนึ่งที่ฉันรู้สึกตลกคือ Google ดำเนินการโดยชีวสารสนเทศศาสตร์ ('เคย์ฉันคิดว่ามันตลกเพราะฉันเป็นไบโออิน ... ให้ฉันอธิบาย
ชีวสารสนเทศศาสตร์ในช่วงต้นมีความท้าทายในการค้นหาข้อความขนาดเล็กในสายขนาดมหึมาอย่างรวดเร็ว สำหรับเราแล้ว“ สายอักขระขนาดมหึมา” คือดีเอ็นเอ มักไม่ใช่ DNA เดียว แต่เป็นฐานข้อมูลของ DNA หลายชนิดจากสายพันธุ์ / บุคคลที่แตกต่างกัน ข้อความเล็ก ๆ คือโปรตีนหรือพันธุกรรมของยีน งานชิ้นแรกของนักชีววิทยาเชิงคำนวณส่วนใหญ่ถูก จำกัด ให้ค้นหา homologies ระหว่างยีน สิ่งนี้ทำเพื่อสร้างการทำงานของยีนที่พบใหม่โดยสังเกตความคล้ายคลึงกับยีนที่รู้จักกันดีอยู่แล้ว
ตอนนี้สาย DNA เหล่านี้มีขนาดใหญ่มากและการค้นหา (lossy!) จะต้องทำได้อย่างมีประสิทธิภาพมาก ดังนั้นทฤษฎีการค้นหาสตริงสมัยใหม่ส่วนใหญ่จึงได้รับการพัฒนาในบริบทของชีววิทยาเชิงคำนวณ
อย่างไรก็ตามเมื่อไม่นานมานี้การค้นหาข้อความแบบเดิมก็หมดลง จำเป็นต้องมีแนวทางใหม่ที่อนุญาตให้ค้นหาสตริงขนาดใหญ่ในช่วงเวลาย่อยนั่นคือโดยไม่ต้องดูอักขระเดี่ยวแต่ละตัว พบว่าสิ่งนี้สามารถแก้ไขได้โดยการประมวลผลสตริงขนาดใหญ่ล่วงหน้าและสร้างโครงสร้างข้อมูลดัชนีพิเศษทับ มีการเสนอโครงสร้างข้อมูลที่แตกต่างกันจำนวนมาก แต่ละคนมีจุดแข็งและจุดอ่อน แต่มีสิ่งที่น่าทึ่งเป็นพิเศษเพราะช่วยให้สามารถค้นหาได้ตลอดเวลา ตอนนี้ตามลำดับความสำคัญที่ Google ดำเนินการสิ่งนี้ไม่เป็นความจริงอย่างเคร่งครัดอีกต่อไปเนื่องจากการจัดสรรภาระงานข้ามเซิร์ฟเวอร์การประมวลผลล่วงหน้าและสิ่งที่ซับซ้อนอื่น ๆ จะต้องถูกนำมาพิจารณา
แต่ในสาระสำคัญดัชนี q-gram ที่เรียกว่าช่วยให้สามารถค้นหาได้ในเวลาคงที่ ข้อเสียเพียงอย่างเดียว: โครงสร้างข้อมูลมีขนาดใหญ่มาก โดยพื้นฐานแล้วเพื่อให้สามารถค้นหาสตริงที่มีอักขระได้ไม่เกินq (ดังนั้นชื่อ) จำเป็นต้องมีตารางที่มีหนึ่งฟิลด์สำหรับการรวมกันของตัวอักษรq ที่เป็นไปได้แต่ละตัว (นั่นคือq Sโดยที่Sคือขนาดของตัวอักษร , พูด 36 (= 26 + 10)) นอกจากนี้ต้องมีหนึ่งฟิลด์สำหรับตำแหน่งตัวอักษรแต่ละตำแหน่งในสตริงที่ถูกสร้างดัชนี (หรือในกรณีของ Google สำหรับแต่ละเว็บไซต์)
เพื่อลดขนาดที่แท้จริง Google อาจใช้ดัชนีหลายตัว (อันที่จริงพวกเขาทำเพื่อให้บริการเช่นการแก้ไขการสะกดคำ) อันดับสูงสุดจะไม่สามารถใช้ได้กับระดับอักขระ แต่ใช้ในระดับคำแทน สิ่งนี้ช่วยลดqแต่ทำให้Sใหญ่ขึ้นอย่างไม่ จำกัด ดังนั้นพวกเขาจึงต้องใช้ตารางการแฮชและการชนกันเพื่อรับมือกับจำนวนคำที่แตกต่างกันไม่สิ้นสุด
ในระดับถัดไปคำที่แฮชเหล่านี้จะชี้ไปที่โครงสร้างข้อมูลดัชนีอื่น ๆ ซึ่งในทางกลับกันจะมีอักขระแฮชที่ชี้ไปยังเว็บไซต์
เรื่องสั้นสั้นโครงสร้างข้อมูลดัชนีq -gram เหล่านี้ถือเป็นส่วนสำคัญที่สุดของอัลกอริทึมการค้นหาของ Google น่าเสียดายที่ไม่มีเอกสารทางเทคนิคที่ดีที่อธิบายว่าดัชนีq -gram ทำงานอย่างไร เพียงสิ่งพิมพ์ที่ฉันรู้ว่ามีคำอธิบายของวิธีการทำงานเช่นดัชนีคือ ... อนิจจาฉันวิทยานิพนธ์ปริญญาตรี