ทำความรู้จักกับ Azure Cognitive Search
หากใครได้เคยลองสังเกต ไม่ว่าจะแอปพลิเคชันหรือเว็บไซต์ใด ๆ ก็จะมี ช่องให้ผู้ใช้สามารถพิมพ์ข้อความลงไป สำหรับการค้นหาสิ่งนั้น บนแอปพลิเคชันหรือเว็บไซต์ ในปัจจุบัน Azure ได้ให้บริการ Azure Cognitive Search ที่จะช่วยในการสร้างประสบการณ์การค้นหาที่สมบูรณ์
Azure Cognitive Search หรือ Azure Search คือ cloud search service ที่ให้โครงสร้างพื้นฐานสำหรับนักพัฒนา API และเครื่องมือสำหรับการสร้างการค้นหา ในเว็บ โทรศัพท์มือถือ และแอปพลิเคชันระดับองค์กร
สำหรับ Search Service มีหน้าที่หลัก ๆ อยู่สองอย่าง คือ
- Indexing – การจัดทำดัชนี เป็นกระบวนการนำเข้าที่โหลดเนื้อหาลงใน Search Service และทำให้ค้นหาได้
- Querying – การสืบค้น อาจเกิดขึ้นเมื่อมีการเติมข้อมูลดัชนีด้วยข้อความที่ค้นหาได้ เมื่อแอปส่งคำขอค้นหาไปยัง Search Service และจัดการการตอบกลับ การดำเนินการค้นหาทั้งหมดจะอยู่เหนือ search index ที่ควบคุมได้
ทำไมถึงต้องใช้ Cognitive Search
- รวมเนื้อหาที่ไม่เหมือนกันลงในดัชนีการค้นหาส่วนตัวที่กำหนดโดยผู้ใช้ ลดภาระงานการจัดทำดัชนี และการค้นหาลงในบริการค้นหาเฉพาะ
- ใช้ฟีเจอร์ที่เกี่ยวข้องกับการค้นหาได้อย่างง่ายดาย ไม่ว่าจะเป็น การปรับความเกี่ยวข้อง การนำทาง ตัวกรอง การแมปคำพ้องความหมาย และการเติมข้อความอัตโนมัติ
- แปลงไฟล์ข้อความ หรือรูปภาพขนาดใหญ่ที่ไม่แตกต่างกัน หรือไฟล์แอปพลิเคชันที่จัดเก็บไว้ใน Azure Blob Storage หรือ Cosmos DB ให้เป็นกลุ่มที่ค้นหาได้
- เพิ่มภาษาศาสตร์ หรือการวิเคราะห์ข้อความที่กำหนดเอง หากเนื้อหาที่มีไม่ใช่ภาษาอังกฤษ Azure Cognitive Search รองรับ Lucene analyzer และ Microsoft’s natural language processor สามารถกำหนดค่าตัววิเคราะห์เพื่อให้เกิดการประมวลผลเฉพาะของเนื้อหาดิบ
Feature ของ Azure Cognitive Search
หลังจากบทความที่แล้วได้พาไปรู้จักกับ Azure Cognitive Search แล้ว บทความนี้เราจะมาพูดถึง “ฟีเจอร์ ของ Azure Cognitive Search” กัน โดยฟีเจอร์ของ Azure Cognitive Search จะมีอยู่หลัก ๆ 6 ฟีเจอร์ด้วยกัน
- Indexing features
- Data sources
Indexer เป็นฟีเจอร์ที่นำเข้าข้อมูลจากแหล่งข้อมูลที่รองรับ เพื่อแยกเนื้อหาที่ค้นหาได้ในที่เก็บข้อมูลหลัก สามารถเชื่อมต่อกับแหล่งข้อมูลที่หลากหลาย เช่น Azure SQL Database, Azure Cosmos DB หรือที่เก็บข้อมูล Azure Blob
- Hierarchical and nested data structures
Complex type & Collection จะช่วยในการสร้างแบบจำลองโครงสร้าง JSON ได้แทบทุกประเภทภายใน search index
- Linguistic analysis
Analyzer คือส่วนประกอบที่ใช้สำหรับการประมวลผลข้อความระหว่างการทำ Index และ Search operation โดยค่าเริ่มต้น คือ Language analyzer จาก Lucene หรือ Microsoft ใช้เพื่อจัดการภาษาศาสตร์ รวมถึงกาลกริยา เพศ การแยกคำ (สำหรับภาษาที่มี ไม่มีช่องว่าง) และอื่นๆ
- AI enrichment and knowledge mining
- AI processing during indexing
AI enrichment คือ Embedded image และ Natural Language Processing ใน Indexer pipeline ที่แยกข้อความ และข้อมูลจากเนื้อหาที่ไม่สามารถจัดทำดัชนีสำหรับการค้นหาข้อความแบบเต็มได้
- Storing enriched content for analysis and consumption in non-search scenarios
Knowledge store มีไว้สำหรับสถานการณ์ที่ไม่ใช่การค้นหา
- Cached enrichments
Incremental enrichment
- Query and user experience
- Free-form text search
- Full-text search เป็นกรณีการใช้งานหลักสำหรับแอปที่ใช้การค้นหาส่วนใหญ่
- Simple query syntax จัดเตรียมตัวดำเนินการตรรกะ ตัวดำเนินการค้นหาวลี ตัวดำเนินการต่อท้าย ตัวดำเนินการลำดับความสำคัญ
- Full Lucene query syntax รวมการดำเนินการทั้งหมดในไวยากรณ์อย่างง่าย
- Relevance
Simple scoring เป็นประโยชน์หลักของ Azure Cognitive Search เช่น ถ้าต้องการให้สินค้าใหม่หรือสินค้าลดราคาปรากฏในผลการค้นหาที่สูงขึ้น เราสามารถโปรไฟล์การให้คะแนนโดยใช้แท็กสำหรับการให้คะแนนส่วนบุคคลตามการตั้งค่า
- Geospatial search
Geospatial function จะกรอง และจับคู่พิกัดทางภูมิศาสตร์
- Filters and facets
- Faceted navigation เปิดใช้งานผ่าน single query parameter
- Filter สามารถใช้เพื่อรวม Faceted navigation เข้ากับ UI ของแอปพลิเคชัน ปรับปรุงการสืบค้น และกรองตามเกณฑ์ที่ผู้ใช้ หรือผู้พัฒนาระบุ User experience
- Autocomplete สามารถเปิดใช้งานสำหรับข้อความค้นหาแบบพิมพ์ล่วงหน้าในแถบค้นหา
- Search suggestion ใช้งานได้จากการป้อนข้อความบางส่วนในแถบค้นหา แทนที่จะเป็นคำที่ใช้ค้นหา
- Synonym เพื่อเชื่อมโยงกับคำศัพท์ที่เทียบเท่ากัน
- Hit highlighting ใช้การจัดรูปแบบข้อความกับคำหลักที่ตรงกันในผลการค้นหา
- Sorting
- Paging และ Throttling
- Security features
- Data encryption
- Microsoft-managed encryption-at-rest ถูกสร้างขึ้นใน internal storage layer และไม่สามารถเพิกถอนได้
- Customer-managed encryption keys
- Endpoint protection
- IP rules for inbound firewall support ตั้งค่าช่วง IP ที่บริการค้นหาจะยอมรับคำขอ
- Create a private endpoint ใช้ Azure Private Link เพื่อบังคับคำขอทั้งหมดผ่านเครือข่ายเสมือน
- Outbound security (indexers)
- Data access through private endpoints ทำให้ Indexer เชื่อมต่อกับทรัพยากร Azure ที่ได้รับการป้องกันผ่าน Azure Private Link
- Data access using a trusted identity
- Portal features
- Tools for prototyping and inspection
- Add index เป็นตัวออกแบบดัชนี สามารถใช้สร้าง Schema พื้นฐานที่ประกอบด้วยแอตทริบิวต์ และการตั้งค่าอื่นๆ
- Import data wizard สร้าง index, Indexers, skillsets และ คำจำกัดความของแหล่งข้อมูล
- Search explorer ใช้เพื่อทดสอบข้อความค้นหา
- Create demo app ใช้ในการสร้างหน้า HTML ที่สามารถใช้ทดสอบประสบการณ์การค้นหา
- Monitoring and diagnostics
- Programmability