ทำความรู้จักกับ Azure Cognitive Search
หากใครได้เคยลองสังเกต ไม่ว่าจะแอปพลิเคชันหรือเว็บไซต์ใด ๆ ก็จะมี ช่องให้ผู้ใช้สามารถพิมพ์ข้อความลงไป สำหรับการค้นหาสิ่งนั้น บนแอปพลิเคชันหรือเว็บไซต์ ในปัจจุบัน Azure ได้ให้บริการ Azure Cognitive Search ที่จะช่วยในการสร้างประสบการณ์การค้นหาที่สมบูรณ์
![Azure Cognitive Search](http://www.fusionsol.com/wp-content/uploads/sites/2/2022/08/image-30.png)
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