หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Cosmos DB in Fabric นําเสนอคุณสมบัติการค้นหาข้อความแบบเต็มที่มีประสิทธิภาพตามที่พร้อมใช้งานโดยทั่วไป คุณลักษณะนี้ถูกออกแบบมาเพื่อปรับปรุงความสามารถในการค้นหาแบบเนทีฟของแอปของคุณโดยไม่จําเป็นต้องมีบริการค้นหาภายนอกสําหรับการค้นหาข้อความแบบเต็มพื้นฐาน
การค้นหาข้อความแบบเต็มคืออะไร
Cosmos DB in Fabric นําเสนอการจัดทําดัชนีข้อความและการค้นหาเต็มรูปแบบซึ่งออกแบบมาเพื่อเพิ่มประสิทธิภาพปริมาณงานการค้นหาและการดึงข้อมูลของคุณ คุณลักษณะนี้รวมถึงเทคนิคการประมวลผลข้อความขั้นสูงเช่นการทําให้เป็นสาเหตุให้หยุดการเอาคําออกและโทเค็นการเปิดใช้งานการค้นหาข้อความที่มีประสิทธิภาพและมีประสิทธิภาพผ่านดัชนีข้อความเฉพาะ การค้นหาข้อความแบบเต็มยังรวมถึง การให้คะแนนข้อความแบบเต็ม ด้วยฟังก์ชันที่ประเมินความเกี่ยวข้องของเอกสารไปยังคิวรีค้นหาที่ระบุ BM25 หรือ Best Matching 25 พิจารณาปัจจัยต่างๆ เช่น ความถี่ของคําศัพท์ ความถี่ของเอกสารผกผัน และความยาวของเอกสารในคะแนนและจัดอันดับเอกสาร การดําเนินการนี้จะช่วยให้แน่ใจว่าเอกสารที่เกี่ยวข้องมากที่สุดจะปรากฏที่ด้านบนของผลลัพธ์การค้นหา ปรับปรุงความถูกต้องและประโยชน์ในการค้นหาข้อความ
การค้นหาข้อความแบบเต็มเหมาะสําหรับสถานการณ์ต่าง ๆ รวมถึง:
อีคอมเมิร์ซ: ค้นหาผลิตภัณฑ์อย่างรวดเร็วตามคําอธิบาย บทวิจารณ์ และแอตทริบิวต์ข้อความอื่นๆ
การจัดการเนื้อหา: ค้นหาบทความ บล็อก และเอกสารอย่างมีประสิทธิภาพ
การสนับสนุนลูกค้า: ดึงตั๋วการสนับสนุน คําถามที่พบบ่อย และบทความฐานความรู้ที่เกี่ยวข้อง
เนื้อหาของผู้ใช้: วิเคราะห์และค้นหาเนื้อหาที่ผู้ใช้สร้างขึ้น เช่น โพสต์และความคิดเห็น
RAG สําหรับ chatbots: ปรับปรุงการตอบสนองของแชทบอทโดยการดึงข้อมูลที่เกี่ยวข้องจาก corpora ข้อความขนาดใหญ่ ปรับปรุงความถูกต้องและความเกี่ยวข้องของคําตอบ
แอป AI แบบหลายตัวแทน: ช่วยให้เจ้าหน้าที่ AI หลายรายสามารถค้นหาและวิเคราะห์ข้อมูลข้อความจํานวนมากและให้ข้อมูลเชิงลึกที่ครอบคลุมและแยกแยะความแตกต่างได้
วิธีใช้การค้นหาข้อความแบบเต็ม
กําหนดค่าคอนเทนเนอร์ด้วยนโยบายข้อความแบบเต็มและดัชนีข้อความแบบเต็ม
แทรกข้อมูลของคุณด้วยคุณสมบัติของข้อความ
เรียกใช้คิวรีกับข้อมูลโดยใช้ฟังก์ชันระบบค้นหาข้อความแบบเต็ม
กําหนดค่านโยบายคอนเทนเนอร์และดัชนีสําหรับการค้นหาแบบไฮบริด
เมื่อต้องการใช้ความสามารถในการค้นหาข้อความแบบเต็ม คุณควรกําหนดนโยบายสองนโยบายก่อน:
นโยบายข้อความแบบเต็มระดับคอนเทนเนอร์ที่กําหนดเส้นทางที่ประกอบด้วยข้อความสําหรับฟังก์ชันระบบคิวรีข้อความแบบเต็มใหม่
ดัชนีข้อความแบบเต็มที่เพิ่มลงในนโยบายการทําดัชนีที่เปิดใช้งานการค้นหาที่มีประสิทธิภาพ
คุณสามารถเรียกใช้คิวรีการค้นหาข้อความแบบเต็มได้โดยไม่มีนโยบายเหล่านี้ แต่ไม่ได้ใช้ดัชนีข้อความแบบเต็มและสามารถใช้หน่วยคําขอเพิ่มเติม (RUs) ได้ หากไม่มีนโยบายนี้ การค้นหาข้อความแบบเต็มอาจใช้เวลานานในการดําเนินการ ขอแนะนําให้กําหนดคอนเทนเนอร์ข้อความแบบเต็มและนโยบายดัชนี
นโยบายข้อความแบบเต็ม
สําหรับคุณสมบัติข้อความทั้งหมดที่คุณต้องการกําหนดค่าสําหรับการค้นหาข้อความแบบเต็ม คุณต้องประกาศทั้งคุณสมบัติ path ด้วยข้อความและ language ของข้อความ นโยบายข้อความแบบเต็มอย่างง่ายอาจเป็น:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text",
"language": "en-US"
}
]
}
การกําหนดเส้นทางข้อความหลายรายการสามารถทําได้อย่างง่ายดายโดยการเพิ่มองค์ประกอบอื่นใน fullTextPolicy อาร์เรย์:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text1",
"language": "en-US"
},
{
"path": "/text2",
"language": "en-US"
}
]
}
Important
อักขระตัวแทนการ์ด (*, []) ยังไม่รองรับในนโยบายข้อความแบบเต็มหรือดัชนีข้อความแบบเต็มในขณะนี้
สําหรับข้อมูลเพิ่มเติมและตัวอย่างของการตั้งค่านโยบายข้อความแบบเต็ม ให้ดูตัวอย่างนโยบายการทําดัชนีข้อความแบบเต็ม
รองรับหลายภาษา
การรองรับหลายภาษาช่วยให้คุณสามารถทําดัชนีและค้นหาข้อความในภาษาที่นอกเหนือจากภาษาอังกฤษได้ ซึ่งจะใช้โทเค็นเฉพาะภาษา การใช้ตัวอย่าง และการลบคําหยุดคํา เพื่อให้ได้ผลลัพธ์การค้นหาที่ถูกต้องยิ่งขึ้น
Note
การสนับสนุนหลายภาษาอยู่ในช่วงตัวอย่างในช่วงต้น ประสิทธิภาพและคุณภาพของการค้นหาอาจแตกต่างจากการค้นหาข้อความทั้งหมดในภาษาอังกฤษ ตัวอย่างเช่น การลบ stopword จะพร้อมใช้งานสําหรับภาษาอังกฤษ (en-us) เท่านั้นในขณะนี้ ฟังก์ชันการทํางานอาจมีการเปลี่ยนแปลงผ่านวิวัฒนาการของการแสดงตัวอย่าง
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อจํากัดที่เกี่ยวข้องกับการสนับสนุนหลายภาษา โปรดดู ข้อจํากัดของข้อความแบบเต็มของ Cosmos DB
ดัชนีข้อความแบบเต็ม
การดําเนินการค้นหาข้อความแบบเต็มควรใช้ดัชนีข้อความแบบเต็ม ดัชนีข้อความแบบเต็มสามารถกําหนดได้อย่างง่ายดายใน Cosmos DB ใด ๆ ในนโยบายดัชนี Fabric สําหรับแต่ละตัวอย่างที่นี่:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
เช่นเดียวกับนโยบายข้อความแบบเต็ม ดัชนีข้อความแบบเต็มสามารถกําหนดได้ในหลายเส้นทาง:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
},
{
"path": "/text2"
}
]
}
คิวรีการค้นหาข้อความแบบเต็ม
การค้นหาข้อความแบบเต็มและการดําเนินการให้คะแนนจะดําเนินการโดยใช้ฟังก์ชันระบบต่อไปนี้ใน Cosmos DB ในภาษาคิวรี Fabric:
FULLTEXTCONTAINS: แสดงtrueถ้ามีสตริงที่ระบุอยู่ในคุณสมบัติที่ระบุของเอกสาร ฟังก์ชันนี้มีประโยชน์ในส่วนWHEREคําสั่งเมื่อคุณต้องการตรวจสอบให้แน่ใจว่ามีคําสําคัญที่เฉพาะเจาะจงรวมอยู่ในเอกสารที่คิวรีของคุณส่งกลับFULLTEXTCONTAINSALL: ส่งคืนtrueหากสตริงที่กําหนด ทั้งหมด อยู่ในคุณสมบัติที่ระบุของเอกสาร ฟังก์ชันนี้มีประโยชน์ในส่วนWHEREคําสั่งเมื่อคุณต้องการตรวจสอบให้แน่ใจว่าคําสําคัญหลายคํารวมอยู่ในเอกสารที่คิวรีของคุณส่งกลับFULLTEXTCONTAINSANY: ส่งคืนtrueหากสตริง ใด ๆ ที่กําหนดมีอยู่ในคุณสมบัติที่ระบุของเอกสาร ฟังก์ชันนี้มีประโยชน์ในส่วนWHEREคําสั่งเมื่อคุณต้องการตรวจสอบให้แน่ใจว่าคําสําคัญอย่างน้อยหนึ่งคําถูกรวมอยู่ในเอกสารที่คิวรีของคุณส่งกลับFULLTEXTSCORE: ใช้ฟังก์ชันนี้ในส่วนORDER BY RANKคําสั่งเพื่อส่งคืนเอกสารที่เรียงลําดับโดยคะแนนข้อความเต็มวางเอกสารที่เกี่ยวข้องมากที่สุด (การให้คะแนนสูงสุด) ที่ด้านบนและเอกสารที่เกี่ยวข้องน้อยที่สุด (การให้คะแนนต่ําสุด) ที่ด้านล่าง
นี่คือตัวอย่างบางส่วนของแต่ละฟังก์ชันที่ใช้งานอยู่
FULLTEXTCONTAINS
ในตัวอย่างนี้ เราต้องการรับผลลัพธ์ 10 รายการแรกที่มีวลี "จักรยานสีแดง" อยู่ในคุณสมบัติc.text
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red bicycle")
FULLTEXTCONTAINSALL
ในตัวอย่างนี้ เราต้องการรับผลลัพธ์ 10 รายการแรกซึ่งมีคําสําคัญ "สีแดง" และ "จักรยาน" อยู่ในคุณสมบัติ c.textแต่ไม่จําเป็นต้องรวมกัน
SELECT TOP 10 *
FROM c
WHERE FULLTEXTCONTAINSALL(c.text, "red", "bicycle")
FULLTEXTCONTAINSANY
ในตัวอย่างนี้ เราต้องการรับผลลัพธ์ 10 รายการแรกที่คําสําคัญ "สีแดง" และ "จักรยาน" หรือ "สเก็ตบอร์ด" อยู่ในคุณสมบัติc.text
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red") AND
FULLTEXTCONTAINSANY(c.text, "bicycle", "skateboard")
FULLTEXTSCORE
ในตัวอย่างนี้ เราต้องการรับผลลัพธ์ 10 รายการแรกที่มี "ภูเขา" และ "จักรยาน" รวมอยู่ และเรียงลําดับตามความเกี่ยวข้อง นั่นคือเอกสารที่มีเงื่อนไขเหล่านี้มักจะปรากฏสูงกว่าในรายการ
SELECT TOP 10
*
FROM
container c
ORDER BY RANK
FULLTEXTSCORE(c.text, "bicycle", "mountain")
Important
FULLTEXTSCORE สามารถใช้ในส่วน ORDER BY RANK คําสั่งเท่านั้น และยังไม่ได้คาดการณ์ใน SELECT คําสั่ง หรือ ใน WHERE ส่วนคําสั่ง
การค้นหาแบบคลุมเครือ
การค้นหาแบบไม่พร่ามวสามารถปรับปรุงความยืดหยุ่นในการพิมพ์ผิดและการเปลี่ยนแปลงข้อความ คุณสามารถระบุ "ระยะทาง" ที่อนุญาต (จํานวนการแก้ไข) ระหว่างคําค้นหาและข้อความเอกสาร เพื่อให้ถือว่าใกล้เคียงกับรายการที่ตรงกัน ระยะห่างสูงสุดที่สามารถระบุได้คือ 2 (แก้ไขสองรายการ)
Note
การค้นหาแบบไม่ลับอยู่ในตัวอย่างก่อนเวลา ประสิทธิภาพ คุณภาพ และฟังก์ชันการทํางานอาจเปลี่ยนแปลงไปตามวิวัฒนาการของการแสดงตัวอย่าง
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, {"term": "red", "distance":1}, {"term": "bicycle", "distance":2})