วันอังคารที่ 29 มกราคม พ.ศ. 2551

Search engine








Search engine ทำงานอย่างไร

คำนิยาม "เสิร์ชเอนจิ้น" โดยทั่วไปมักจะหมายถึง เสิร์ชเอนจิ้นชนิด crawler-based ที่ทำงานโดยอัตโนมัติตามโปรแกรมที่ตั้งไว้และชนิด directoriesที่ควบคุมการทำงานโดยแรงงานมนุษย์ เสิร์ชเอนจิ้นทั้งสองประเภท ล้วนลิสต์รายชื่อเว็บไซต์นับล้านทั่วโลกเพื่อเก็บไว้ในฐานข้อมูลของตนในวิธีที่แตกต่างกันอย่างมาก

Crawler-Based เสิร์ชเอนจิ้น
เสิร์ชเอนจิ้นชนิดนี้ เช่น Google ลิสต์รายชื่อเว็บไซต์ต่างๆโดยอัตโนมัติ โดยจะส่ง Googlebot (โปรแกรมที่ทำการสำรวจ crawl เว็บไซต์ต่างๆ)หรือทางศัพท์เทคนิคเรียก Spider สำรวจเว็บไซต์ต่างๆและเก็บเว็บไซต์ต่างๆนั้นลงในฐานข้อมูลของตน และเมื่อผู้ชมทำการค้นหาข้อมูลต่างๆเหล่านั้น Google ก็จะแสดงผลการค้นหาที่มีอยู่ในฐานข้อมูลนั้นแก่ผู้ชม ซึ่งถ้าคุณเปลี่ยนแปลงเนื้อหาในแต่ละเว็บเพจ เสิร์ชเอนจิ้นประเภทนี้ก็สามารถที่จะค้นพบการเปลี่ยนแปลงนั้นๆได้ไม่ว่าจะเป็น ชื่อไตเติ้ล (Page Title), เนื้อหา หรือส่วนอื่นใดในเว็บไซต์ก็ตาม

Human-Powered Directories ไดเรกทอรี่ ที่ได้รับการบริหารจัดการโดยผู้ดูแลระบบไดเรกทอรี่
Directories ที่บริหารจัดการโดยผู้ดูแลระบบ เช่น Open Directory ใช้แรงงานมนุษย์เป็นหลักในการลิสต์รายชื่อเว็บไซต์นับล้าน คุณเพียงแค่ submit เว็บไซต์ที่ระบุรายละเอียดโดยย่อเกี่ยวกับเว็บไซต์ของคุณ ให้กับไดเรกทอรี่ ทาง Editor จะทำการตรวจสอบและนำรายชื่อคุณเข้าสู่ฐานข้อมูลของไดเรกทอรี่ ซึ่งถ้ามีผู้ชมค้นหาข้อมูลตรงกับที่คุณเขียนอธิบายรายละเอียดไว้ เว็บไซต์คุณก็จะแสดงผลออกมาในหน้าผลลัพธ์การค้นหา

การเปลี่ยนในเนื้อหาในเว็บเพจแต่ละหน้านั้นไม่มีผลใดๆต่ออันดับที่จะถูกแสดงขึ้นมาในหน้าผลลัพธ์การค้นหาแต่อย่างใด เทคนิคหรือวิธีการใดๆก็ตามที่มีผลให้เว็บไซต์คุณอยู่ในอันดับที่ดีขึ้นใน search engine นั้น จะไม่ส่งผลใดๆต่ออันดับการค้นหาของไดเรกทอรี่แต่อย่างใด เว้นแต่เว็บไซต์คุณมีเนื้อหาที่เป็นประโยชน์และมีคุณภาพ จะได้รับการพิจารณาจาก ผู้ดูแลไดเรกทอรี่ editor มากกว่าเว็บไซต์ที่เนื้อหาไม่เป็นประโยชน์




Hybrid Search Engines เสิร์ชเอนจิ้นลูกผสม
ทุกวันนี้มีพัฒนาการของ เสิร์ชเอนจิ้น ในลักษณะที่นำข้อดีของทั้ง crawler-based และ directories มาใช้งานมากขึ้น แต่โดยปกติแล้วเสิร์ชเอนจิ้นลูกผสม นั้น มักจะให้ผลลัพธ์ในการค้นหาเอียงไปทางใดทางหนึ่งมากกว่าอีกทางหนึ่ง เช่น MSN search นั้น มักจะโอนเอียงไปทางไดเรกทอรี่ที่ดูแลโดย editor มากกว่า crawler-based อาทิเช่น LookSmart (เสิร์ชเอนจิ้นตัวหนึ่งของ MSN) แต่ก็มีการโอนเอียงไปทาง crawler-basedเช่นกัน อาทิเช่น Inktormi (เสิร์ชเอนจิ้นตัวหนึ่งของ MSN)โดยเฉพาะอย่างยิ่งคำค้นหาที่มีความสลับซับซ้อนมากๆ

องค์ประกอบสำคัญของ Crawler-based เสิร์ชเอนจิ้น
องค์ประกอบสำคัญมี 3 ส่วน คือ Spider (สไปเดอร์) หรือที่เรียกว่า Crawler สไปเดอร์จะเข้าทำการสำรวจเว็บเพจ เก็บข้อมูล โดยไล่ไปตามลิ๊งก์ที่อยู่ในแต่ละเว็บเพจนั้นๆและเก็บข้อมูลเหล่านั้นไว้ในฐานข้อมูล ซึ่งสไปเดอร์จะทำการสำรวจเว็บไซต์ต่างๆอยู่อย่างสม่ำเสมอ เช่น ทุกเดือนๆ เพื่อตรวจสอบการเปลี่ยนแปลงภายในเว็บไซต์นั้นๆ
เมื่อ สไปเดอร์สำรวจเจอข้อมูลใดๆก็ตาม ข้อมูลเหล่านั้นจะถูกส่งไป index อินเด็กซ์ หรือบางครั้งเรียก catalogue แคตตาล็อก index นั้นเปรียบเหมือนกับหนังสือพจนานุกรมเล่มใหญ่มหึหามาที่บรรจุข้อมูลทุกๆเว็บเพจของทุกๆเว็บไซต์ที่สไปเดอร์เข้าทำการสำรวจมาแล้ว ซึ่งถ้าเว็บเพจเปลี่ยนแปลงข้อมูลใน index ก็จะเปลี่ยนแปลงตามไปด้วย
บางครั้งใช้ระยะเวลาพอประมาณในการที่ข้อมูลของเวบเพจที่เปลี่ยนแปลง หรือเว็บเพจที่เพิ่มขึ้นจะได้รับการ index ถึงแม้ว่า spider จะเข้าทำการสำรวจไปแล้วก็ตามหรือกล่าวได้ว่า สำรวจแล้วแต่ยังไม่ได้รับการบรรจุ (index) เข้าไปในฐานข้อมูลของ เสิร์ชเอนจิ้น

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

Crawler-based เสิร์ชเอนจิ้น นั้นล้วนมีองค์ประกอบสำคัญตามที่อธิบายไว้แล้ว แต่ทั้งนี้อาจมีวิธีการที่แตกต่างกันในการลำดับข้อมูล ดังนั้นผลลัพธ์การค้นหาของคีย์เวิร์ดคำเดียวกัน อาจให้ผลลัพธ์ที่แตกต่างกันเมื่อใช้เสิร์ชเอนจิ้นคนละตัวก็เป็นได้ ข้อมูลต่างๆเหล่านี้รวมรวมมาจากหลายๆแหล่งอาทิ อินเตอร์เน็ท หนังสือ หัวข้อข่าว และอื่นๆ รวมถึงส่วนคำอธิบายของเสิร์ชเอนจิ้นแต่ละตัวเองด้วย

หมายเหตุ: บทความนี้ไม่สงวนลิขสิทธิ์แต่อย่างใด สามารถนำไปใช้อ้างอิงเผยแพร่ได้ตามต้องการ ทางบริษัท ทีไอเอส มาร์เก็ตติ้ง จำกัด จะขอบคุณอย่างมากหากคุณอ้างอิงถึงแหล่งที่มาว่ามาจากเว็บไซต์ http://www.tismarketing.com
เสิร์ชเอ็นจิน และไดเรคทอรี

บริการค้นหาเวบเพจที่มีอยู่ในปัจจุบันเช่น AltaVista, Lycos, Yahoo, HotBot, InfoSeek ฯลฯ ซึ่งเรามักเรียกโดยรวมทั้งหมดว่าเป็นเสิร์ชเอ็นจินนั้น แท้ที่จริงแล้วมีบางแห่งมีที่ทำงานด้วยโดยใช้เสิร์ชเอ็นจิน และบางแห่งทำงานด้วยวิธีเก็บเว็บเพจไว้เป็น ไดเรคทอรี ซึ่งมีความแตกต่างกันโดยหลักพื้นฐานการสร้างดัชนีชี้เวบเพจ
ไดเรคเทอรีมีการทำงานที่แตกต่างกับเสิร์ชเอ็นจิน คือใช้การปรับเพิ่มข้อมูลโดยผู้ดูแลระบบเองโดยไม่ได้ทำอย่างอัตโนมัติ หากเวบไซต์ใดที่ต้องการมีรายชื่อในไดเรคเทอรีก็ต้องติดต่อไปยังผู้ดูแลไดเรคเทอรี เพื่อให้ผู้ดูแลจำแนกและจัดเก็บลงในฐานข้อมูล ระบบการเก็บแบบไดเรคเทอรีอาจให้ผลลัพธ์การค้นหาข้อมูลที่ตรงประเด็นมากกว่าเสิร์ชเอ็นจิน เพราะผ่านการแยกหมวดหมู่เองเพื่อให้สามารถค้นหาได้โดยตรง ตัวอย่างของบริการค้นหาที่ใช้ระบบไดเรคเทอรีได้แก่ Yahoo!
สำหรับเสิร์ชเอ็นจินโดยความหมายที่แท้จริงแล้วเป็นระบบซอฟต์แวร์ที่คอยอ่านข้อมูลแต่ละหน้าหรือเวบเพจจากเวบไซต์ต่างๆโดยอัตโนมัติ จากนั้นจึงนำเวบเพจที่อ่านได้มาทำดัชนี เสิร์ชเอ็นจินจะตรวจสอบลิงค์ในแต่ละหน้าของเวบเพจเพื่อเข้าไปอ่านเวบเพจเพื่อทำดัชนีต่อไปอีก ตัวอย่างของเสิร์ชเอ็นจินนี้ได้แก่ Alta Vista หรือ HotBot เป็นต้น
ภายในของเสิร์ชเอ็นจิน

โครงสร้างภายในของเสิร์ชเอ็นจินสามารถแบ่งออกเป็น 3 ส่วนใหญ่ๆ คือ
เสิร์ชเอ็นจิน = สไปเดอร์ + อินเด็กเซอร์ + เสิร์ชเอ็นจินซอฟต์แวร์




เทคนิคในเสิร์ชเอ็นจิน

ผลลัพธ์จากการค้นหาจากเสิร์ชเอ็นจินที่มีใช้งานอยู่ทั่วไปนั้น นอกจากจะได้ลิงค์ของเวบเพจแล้วเสิร์ชเอ็นจินยังแสดงเนื้อหาข้อมูลในเวบเพจนั้นด้วย นั่นหมายความว่าเสิร์ชเอ็นจินจะต้องจัดเก็บข้อมูลที่นำมาแสดงนั้นไว้ในฐานข้อมูล เสิร์ชเอ็นจินแต่ละตัวมีวิธีเลือกเก็บข้อมูลแตกต่างกันไปเช่น เก็บเฉพาะอักขระ 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)

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