 |
 |
 |
|
 |
 |
| |
|
|
| - |
อะไรคือ XNA Framework |
more |
| |
|
|
| - |
มาเข้าใจเรื่อง utf8 กับ tis620 กัน |
more |
| |
|
|
| - |
บริการเว็บไซด์ สำเร็จรูป ใหม่ |
more |
| |
|
|
| - |
จาก Web 2.0 สู่ Web 3.0 ความเหมือนที่แตกต่าง |
more |
|
|
|
|
 |
 |
 |
 |
 |
 |
|
 |
 |
Visitor Today : 463
Visitor Total : 450230 |
|
|
 |
 |
 |
|
เสิร์ชเอ็นจิน และ ไดเรคทอรี ? : SearchEngine
รายละเอียด :

อินเทอร์เน็ตในปัจจุบันมีข้อมูลข่าวสารอยู่มากมาย โดยเฉพาะข้อมูลไฮเปอร์เท็กซ์ที่มีให้บริการในระบบ WWW เป็นที่นิยมใช้อย่างแพร่หลาย การค้นหาข้อมูลที่มีเนื้อหาที่ตรงกับความสนใจจากเว็บเพจกว่า 100 ล้านเพจ ที่มีรวมกันอยู่ในอินเทอร์เน็ตจึงเป็นเรื่องยาก หากไม่มีเครื่องมือช่วยค้นหาหรือที่รู้จักกันดีในชื่อของ Search Engine
บทความนี้จะอธิบายถึงโครงสร้างและหลักการทำงานพื้นฐานของเสิร์ชเอ็นจิน และเทคนิคที่ช่วยให้เสิร์ชเอ็นจิน สามารถค้นหา และทำดัชนี (Index) ได้อย่างมีประสิทธิภาพ
เสิร์ชเอ็นจิน และไดเรคทอรี
บริการค้นหาเวบเพจที่มีอยู่ในปัจจุบันเช่น AltaVista, Lycos, Yahoo, HotBot, InfoSeek ฯลฯ ซึ่งเรามักเรียกโดยรวมทั้งหมดว่าเป็นเสิร์ชเอ็นจินนั้น แท้ที่จริงแล้วมีบางแห่งมีที่ทำงานด้วยโดยใช้เสิร์ชเอ็นจิน และบางแห่งทำงานด้วยวิธีเก็บเว็บเพจไว้เป็น ไดเรคทอรี ซึ่งมีความแตกต่างกันโดยหลักพื้นฐานการสร้างดัชนีชี้เวบเพจ
ไดเรคเทอรีมีการทำงานที่แตกต่างกับเสิร์ชเอ็นจิน คือใช้การปรับเพิ่มข้อมูลโดยผู้ดูแลระบบเองโดยไม่ได้ทำอย่างอัตโนมัติ หากเวบไซต์ใดที่ต้องการมีรายชื่อในไดเรคเทอรีก็ต้องติดต่อไปยังผู้ดูแลไดเรคเทอรี เพื่อให้ผู้ดูแลจำแนกและจัดเก็บลงในฐานข้อมูล ระบบการเก็บแบบไดเรคเทอรีอาจให้ผลลัพธ์การค้นหาข้อมูลที่ตรงประเด็นมากกว่าเสิร์ชเอ็นจิน เพราะผ่านการแยกหมวดหมู่เองเพื่อให้สามารถค้นหาได้โดยตรง ตัวอย่างของบริการค้นหาที่ใช้ระบบไดเรคเทอรีได้แก่ Yahoo!
สำหรับเสิร์ชเอ็นจินโดยความหมายที่แท้จริงแล้วเป็นระบบซอฟต์แวร์ที่คอยอ่านข้อมูลแต่ละหน้าหรือเวบเพจจากเวบไซต์ต่างๆโดยอัตโนมัติ จากนั้นจึงนำเวบเพจที่อ่านได้มาทำดัชนี เสิร์ชเอ็นจินจะตรวจสอบลิงค์ในแต่ละหน้าของเวบเพจเพื่อเข้าไปอ่านเวบเพจเพื่อทำดัชนีต่อไปอีก ตัวอย่างของเสิร์ชเอ็นจินนี้ได้แก่ Alta Vista หรือ HotBot เป็นต้น
ภายในของเสิร์ชเอ็นจิน
โครงสร้างภายในของเสิร์ชเอ็นจินสามารถแบ่งออกเป็น 3 ส่วนใหญ่ๆ ดังรูปที่ 1 คือ
-
เสิร์ชเอ็นจิน = สไปเดอร์ + อินเด็กเซอร์ + เสิร์ชเอ็นจินซอฟต์แวร์
รูปที่ 1 องค์ประกอบของเสิร์ชเอ็นจิน
สไปเดอร์
สไปเดอร์ หรืออาจเรียกในชื่ออื่นว่า โรบอต หรือ ครอเลอร์ (Crawler) ทำหน้าที่อ่านเวบเพจในแต่ละ เวบไซต์ แล้วตรวจสอบลิงค์เพื่อเชื่อมไปยังเวบไซต์อื่นๆ เวบเพจที่อ่านมาได้นั้นจะถูกส่งไปยังอินเด็กเซอร์ต่อไป สไปเดอร์อาจจะกลับมาอ่านเวบเพจเดิมซ้ำว่ามีการเปลี่ยนแปลงหรือไม่ตามระยะเวลาที่กำหนดไว้
1. สร้างคิวของเวบเพจ ที่ต้องการจะทำดัชนีโดยในคิวนั้นเริ่มต้นมีอย่างน้อยที่สุดหนึ่งเวบเพจ
2. เลือกเวบเพจขึ้นมาจากคิวหนึ่งเวบเพจ
3. อ่านข้อมูลจากเวบเพจที่เลือกขึ้นมาจากขั้นที่ 2 แล้ววิเคราะห์ว่ามีลิงค์เชื่อมไปยังเวบเพจอื่นใดบ้าง จากนั้นให้เพิ่มลิงค์ของเวบเพจลงคิว
4. เก็บข้อมูลจากเวบเพจโดยจัดเก็บคำที่กำหนดด้วยคำสั่ง title หรืออื่นๆเข้าสู่ฐานข้อมูล
5. กลับไปยังขั้นที่ 2
นอกจาก สไปเดอร์ จะทำงานหาลิงค์เพิ่มโดยอัตโนมัตแล้ว เสิร์ชเอ็นจินส่วนใหญ่อนุญาตให้ส่ง URL เพื่อกำหนดให้สไปเดอร์มาทำดัชนีที่เวบไซต์ใดๆได้ ในปัจจุบันมีบริการที่จะส่ง URL ไปเสิร์ชเอ็นจิน หลายๆแห่งพร้อมกันในคราวเดียวเช่นที่ www.submit-it.com
อินเด็กเซอร์
อินเด็กเซอร์จะรับข้อมูลจากสไปเดอร์มาทำดัชนี เทคนิคการทำดัชนีมักใช้การจัดเก็บแบบแฮชชิง เพื่อที่ช่วยให้ค้นหาข้อมูลได้สามารถค้นหาได้อย่างรวดเร็ว ขั้นตอนการทำงานของอินเด็กเซอร์แบ่งออกได้เป็น 3 ขั้นตอนหลักดังรูปที่ 2 คือ
-
กรองคำด้วยฟิลเตอร์ เนื่องจากไฟล์ที่ทำดัชนีอาจไม่เป็น HTML หรือไฟล์แอสกี ดังนั้นฟิลเตอร์จะตรวจสอบไฟล์ที่ได้ว่าเป็นไฟล์ชนิดใดสามารถนำมาทำดัชนีได้หรือไม่ ถ้าได้ก็จะส่งต่อสู่ภาคการแยกคำต่อไป เสิร์ชเอ็นจินบางตัวสามารถ ทำดัชนีไฟล์อื่นๆนอกเหนือจากไฟล์ HTML ได้ด้วยเช่น Index Server ของไมโครซอฟต์สามารถทำดัชนีคำของแฟ้มเวิร์ดหรือเอกเซลได้
-
แยกคำ ขั้นตอนนี้จะรับสายอักขระมาจากฟิลเตอร์ แล้วตัดแบ่งสายอักขระนั้นๆออกเป็นคำๆ และเพื่อตรวจสอบต่อไปว่าควรจะนำคำนั้นมาทำดัชนีหรือไม่
-
จัดทำดัชนี ขั้นตอนนี้จะทำหน้าที่ตรวจสอบคำศัพท์แต่ละคำที่ได้มาจากการแยกคำ แล้วพิจารณาว่าคำศัพท์คำนั้นสมควรที่จะนำมาทำดัชนีหรือไม่ เช่นคัดทิ้งคำบางคำที่ไม่ได้ใขฃช้ประโยชน์ในการค้นหา เช่น a, an, the, you หรือ of เป็นต้น เสิร์ชเอ็นจินบางตัวสามารถกำหนดได้ว่าจะทำดัชนี กับคำศัพท์เหล่านี้ไว้หรือไม่
รูปที่ 2 องค์ประกอบของอินเด็กเซอร์
เสิร์ชเอ็นจินซอฟต์แวร์
เป็นส่วนของโปรแกรมที่รับคำศัพท์ที่ต้องการให้ค้นหา แล้วค้นหาในดัชนี หลังจากนั้นจะนำข้อมูลที่ค้นหามาจัดลำดับตามความสำคัญก่อนหลังเพื่อแสดงกลับไปบนหน้าจอ โปรแกรมส่วนนี้มักเป็นโปรแกรม cgi ที่เขียนเชื่อมโยงเข้ากับเวบเพจที่รอให้ผู้ใช้ป้อนคำศัพท์
เทคนิคในเสิร์ชเอ็นจิน
ผลลัพธ์จากการค้นหาจากเสิร์ชเอ็นจินที่มีใช้งานอยู่ทั่วไปนั้น นอกจากจะได้ลิงค์ของเวบเพจแล้วเสิร์ชเอ็นจินยังแสดงเนื้อหาข้อมูลในเวบเพจนั้นด้วย นั่นหมายความว่าเสิร์ชเอ็นจินจะต้องจัดเก็บข้อมูลที่นำมาแสดงนั้นไว้ในฐานข้อมูล เสิร์ชเอ็นจินแต่ละตัวมีวิธีเลือกเก็บข้อมูลแตกต่างกันไปเช่น เก็บเฉพาะอักขระ 200 ตัวแรกของเวบเพจ เสิร์ชเอ็นจินจะคัดเอาอักขระ 200 ตัวแรกที่ไม่ได้เป็นคำสั่ง HTML มาทำเป็นคำบรรยาย หรือเก็บจำนวนคำที่พบในเพจเพื่อนำมาแสดงเป็นคะแนนว่าเวบเพจที่ค้นได้มีความเกี่ยวข้องกับคำที่ค้นมามากเพียงใด
ตัวสไปเดอร์ในเสิร์ชเอนจินจะใช้ทรัพยากรของระบบเป็นจำนวนมาก เสิร์ชเอนจินที่ดีจะมีสไปเดอร์ที่ไม่ใช้ทรัพยากรของระบบสูงมากเกินไปโดยอาศัยเทคนิคดังเช่น
- ไม่อ่านเอกสาร HTML มากเกินไป แม้ว่าสไปเดอร์ จะมีความสามารถจัดการเอกสารได้ทัน เพราะอาจจะทำให้เครือข่ายทำงานช้าลง
- อ่านเฉพาะส่วนที่จำเป็นต้องใช้ เช่นอาจจะอ่านมาเฉพาะส่วนที่เป็นตัวอักษร ซึ่งในโปรโตคอล HTTP มีฟิลด์ Accept ซึ่งใช้สำหรับบอกชนิดของข้อมูลที่ต้องการ หากมีการระบุชนิดของข้อมูลลงในฟิลด์นี้ เวบเซิร์ฟเวอร์จะส่งข้อมูลมาเฉพาะชนิดที่ระบุในไฟล์
- ตรวจสอบไม่ให้อ่านเวบที่เคยอ่านไปแล้ว ข้อควรระวังของข้อนี้ก็คือ เซิร์ฟเวอร์บางเซิร์ฟเวอร์อาจจะมีชื่อได้หลายชื่อ เช่น web.nexor.co.uk, nercules.nexor.co.uk และ 128.243.219.1 เป็นเซิร์ฟเวอร์ เดียวกัน
มัลติเสิร์ชเอ็นจิน
นอกไปจากเสิร์ชเอ็นจินแล้ว ในปัจจุบันยังมีมัลติเสิร์ชเอนจิน หรือ เสิร์ชเอนจินแบบขนาน ซึ่งก็คือเสิร์ชเอนจินที่จะส่งคำไปถามหรือเสิร์ชเอนจินหลายๆตัวพร้อมกันในครั้งเดียว แล้วนำผลลัพธ์ที่ได้มารวมและเรียบเรียงใหม่ ตัวอย่างของมัลติเสิร์ชเอนจิน เช่น
Doqpile (http://www.doqpile.com)
Inference Find (http://m5.inference.com/find/)
Metacrawler (http://www.metacrawler.com)
SEARCH.COM (http://www.search.com)
บทสรุป
เสิร์ชเอนจินนับเป็นเครื่องมือสำคัญอย่างยิ่งในระบบการสืบค้นข้อมูลจากอินเทอร์เน็ต เทคโนโลยีของการค้นหาข้อมูลให้ได้รวดเร็วและถูกต้องตามที่ต้องการยังเป็นหัวข้อที่มีผู้สนใจพัฒนาอย่างมาก โดยเฉพาะการประยุกต์ใช้หลักทางปัญญาประดิษฐ์เข้าไปช่วยในการทำดัชนีและค้นหา เสิร์ชเอนจินที่สามารถสืบค้นคำในภาษาไทยก็นับว่าเป็นสิ่งที่ต้องการอย่างมาก และยังเป็นที่รอคอยให้มีการพัฒนาออกมาใช้งานได้อย่างสมบูรณ์แบบ
ที่มา http://www.ku.ac.th/e-magazine/ |
| จาก : SearchEngine Man train@asiamediasoft.net |
|