วันพฤหัสบดีที่ 24 มกราคม พ.ศ. 2551

Search engine Structure

หลังจากที่เราทราบแล้วว่าอะไรคือ blog search engine จากบล็อกที่แล้ว ซึ่งจะเห็นได้ว่า blog search ก็มีลักษณะการทำงานคล้ายๆ กับ search engine ทั่วไป แต่จะแตกต่างกันที่ blog search จะทำการค้นหาข้อมูลจาก blog เพียงอย่างเดียว สำหรับวันนี้ก็จะนำเสนอข้อมูลเกี่ยวกับโครงสร้างของ Search engine ทั่วไปก่อนค่ะ ส่วนหลักการทำงานของส่วนต่างๆ และการทำงานร่วมกันจะเน้นรายละเอียดในบล็อกต่อๆ ไปค่ะ

โครงสร้างหลักของ Search engine ประกอบด้วย

- Crawler

Crawler / Spider คือ ซอฟต์แวร์ที่ทําหน้าที่ในการเก็บรวบรวมเอกสารอิเล็กทรอนิกส์บนเว็บทั้งหมด (เช่น แฟ้มเอกสารประเภท HTML, PHP, PDF, DOC และอื่นๆ) บนเว็บ ซึ่งจะเรียกสั้นๆ ว่า เอกสารบนเว็บ หรือ เอกสาร (Web Documents)

- Storage

เป็นที่จัดเก็บข้อมูล Web Documents ที่ crawler ไปเก็บรวบรวมมา

- Indexing

การทําดัชนี (Indexing) เป็นวิธีการในการจัดทําดัชนีของคําหลักที่พบภายในเอกสาร ดัชนีของคําหลักที่สกัดได้จากเอกสารจะถูกเก็บรวบรวมไว้เพื่อจัดเตรียมไว้สําหรับการสืบค้น

- Ranking

เป็นการจัดระดับหรือลำดับความนิยม ความสำคัญของ page ต่างๆ


รูปภาพ : Search Engine Architecture



  • เริ่มต้นที่ crawler โดยเราต้องมี list รายการเริ่มต้นของ URLs ที่จะเริ่มก่อน (ถูกเรียกว่า seeds) เช่น http://www.about.com ให้ไปกับ crawler จากนั้น crawler ก็จะไปยังเว็บไซต์นั้นๆ พร้อมทั้งทำการคัดลอก page ไปเก็บไว้ที่ page repository แล้วทำการอ่านหน้า web ที่ไปมาและถอด URL ออก หลังจากนั้นนำเซ็ทของ URL ทีได้ส่งให้กับ craw control เพื่อพิจารณาว่า URL นี้เคยไปมาหรือยัง ถ้าไม่เคยก็จะจัดลำดับคิว แค่ถ้าเคยก็จะ skip ไป
  • ในการจัดทำ index จะมีโมดูลย่อยในการจัดทำ index 2 โมดูล คือ indexer module (ไปดึงข้อมูลที่จัดเก็บไว้ใน page repository ทีละ page แล้วก็นำมาถอดว่ามีคำอะไรบ้างใน page นั้นๆ แล้วจัดทำเป็นดัชนีเก็บไว้ใน text index เพื่อบอกว่าคำๆ นี้อยู่ใน document ไหน) และ collection anlysis (ดึงข้อมูลมาจาก Page Repository แล้วนำข้อมูลจาก Text index และ Structure (ซึ่งมีลักษณะเป็นกราฟ เป็นที่เก็บโครงสร้างของเว็บ เช่น เว็บนี้จะมี link เชื่อมโยงไปเว็บไหนบ้าง) มาประมวลผล แล้วจัดเก็บข้อมูลในรูปแบบอื่นๆ ไว้ใน Utility Index )
  • เมื่อผู้ใช้ป้อนคำค้นเข้ามา เรียกว่า query จะมีโมดูลที่เรียกว่า query engine ทำการค้นหา page ที่เกี่ยวข้อง โดยดึงมาจาก indexer และ Page Repository เมื่อดึงผลลัพธ์มาได้แล้วก็ส่งให้ ranking module เพื่อจัดลำดับผลลัพธ์ หลังจากนั้นก็ส่งผลลัพธ์ที่ได้จัดลำดับแล้วให้แก่ผู้ใช้

แหล่งอ้างอิง

http://www2006.org/programme/files/xhtml/5503/fp5503-pingali/fp5503-pingali-xhtml.html

http://newbiedevman.blogspot.com/2007/08/spiders-robots.html

http://newbiedevman.blogspot.com/2007/07/search-engine.html

http://newbiedevman.blogspot.com/2007/07/search-engine.html

ไม่มีความคิดเห็น:

Powered By Blogger