
ฟังก์ชันบล็อก SOUNDEX คำนวณความคล้ายกันในการออกเสียงของสตริงตัวอักษร
ค่าสาวน์เด็กซ์มีคุณสมบัติที่คำที่ออกเสียงคล้ายกันจะให้ค่าสาวน์เด็กซ์ที่เท่า ๆ กัน นี่สามารถใช้ในการค้นหาในฐานข้อมูลได้ เมื่อคุณรู้ว่าคำออกเสียงอย่างไรก็ตามไม่รู้ว่าควรเขียนอย่างไร คำสั่ง Soundex จะให้สตริงตัวอักษร 4 ตัว ออกมาเริ่มต้นด้วยตัวอักษร
อินพุทนี้กำหนดสตริงตัวอักษรที่จะคำนวณ
ให้สตริงตัวอักษรออกมาเป็นโค้ด Soundex
แต่ละโค้ดสาวน์เด็กซ์ประกอบด้วยตัวอักษรหนึ่งตัวตามด้วยตัวเลขสามตัว เช่น A532 สำหรับ Antcas หากคำนั้นมีจำนวนตัวอักษรมากพอที่จะสร้างตัวเลขมากกว่านี้ ควรตัดหลังจากตัวเลขที่สาม หากคำนั้นมีตัวอักษรมากน้อยกว่า ควรเติมตัวเลขด้วยศูนย์ โค้ดสำหรับชื่อเอเชีย Lee จะเป็น L000 ตัวอย่างเช่น
| ตัวเลข | ตัวอักษรที่แทน |
|---|---|
| 1 | B, F, P, V |
| 2 | C, G, J, K, Q, S, X, Z |
| 3 | D, T |
| 4 | L |
| 5 | M, N |
| 6 | R |
พยางค์ A, E, I, O และ U และพยางค์ H, W และ Y จะถูกละเว้น ยกเว้นตัวอักษรแรก สำหรับภาษาเยอรมันสามารถกำหนดได้ว่า พยางค์ Ä, Ö และ Ü จะถูกละเว้น และพยางค์ ß จะถูกโค้ดเป็นพยางค์ S ตัวอย่างเช่น
หากมีตัวอักษรหลายตัวที่ติดกันในสตริงต้นฉบับมีโค้ดสาวน์เด็กซ์เดียวกัน โค้ดนั้นจะปรากฏในผลลัพธ์เพียงครั้งเดียว จาก abfx จะได้ A120 (a เหลือเพราะเป็นตัวอักษรแรก, b และ f ให้โค้ดเดียวกัน 1, x ให้ 2, และในที่สุดจะเพิ่มศูนย์เพื่อให้มีตัวอักษร 4 ตัว)
ในการใช้งาน Soundex มีสองประเด็นหลักที่ถูกวิจารณ์คือ การออกแบบของมันเป็นไปตามภาษาอังกฤษ และมันให้การวิเคราะห์ที่แย่กว่ามาก
อย่างไรก็ตาม ต้องระบุว่า แอลกอริทึมที่แสดงในนี่เป็นหนึ่งในแอลกอริทึมที่ใช้กันมากที่สุดสำหรับการค้นหาเสียง และมีส่วนช่วยให้ Oracle มีคำสั่ง PL/SQL-Standard ที่เหมาะสมตั้งแต่ต้น