Skip to main content

จะทำ Query เหรอลองใช้ Search แทนซิ!

Submitted by ezybzy on

เปิดไปเจอบทความหนึ่งของเว็บ SharePoint ของคนเยอรมัน (แต่เขียนเป็นภาษาอังกฤษนะ) เขาตั้งโจทย์ว่าเขาอยากจะทำ Query แสดงรายการ Blog ที่อยู่ใน Subsite หลาย ๆ แห่ง (จำไม่ได้ว่าเขียนถึงขั้นว่าต่าง Site Collection เลยไหม)

ถ้าเป็น Developer ทั่ว ๆ ไปคงบอกว่า ก็เขียนโปรแกรมลูปเอาซิ ดัก SPTemplateType เอาก็ได้ แต่ทางออกของเว็บนั้นก็ทำให้ผมผิดคาดนะ เขาบอกว่าใช้ Search ซิ ไหน ๆ มันก็ต้องวิ่ง Crawl อยู่แล้วก็เอาผลลัพธ์การ Crawl มาแสดงแทนไง

วิธีเขาคือ ตั้ง Search scope ให้ครอบคลุม Site ที่เราต้องการ แล้วก็ใช้ Web Part แสดงผลการค้นหามาวางในหน้าเว็บ แล้วก็เขียนเงื่อนไขดี ๆ ว่าจะให้แสดงเฉพาะ Blog เท่านั้นแล้วก็ใช้ XSL ปรับแต่งหน้าตาแสดงผล

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

ข้อดีอีกอย่างของ Search คือ อย่างน้อยมันก็พอจะทราบว่า User ที่เปิดชมหน้านั้นมีสิทธิ์ในการเข้าถึงข้อมูลหรือไม่ ซึ่งทำได้ค่อนข้างยากหากเขียนโปรแกรมลูปเอาเอง แล้วก็ดีในแง่การจัดการ Cache ข้อมูล เพราะถ้าเขียนเองก็คงจะเป็นไปได้ยากในการจัดการ Cache เพราะต้องเขียน Code จัดการเองซึ่งมักจะทำได้ออกมาไม่ดีเท่าไรสู้ของที่ระบบทำเองไม่ได้

Tags