पोस्टग्रेज साउंडएक्स और मेटाफोन जैसे कई स्ट्रिंग कंप्रेशन फ़ंक्शन के साथ एक मॉड्यूल प्रदान करता है। लेकिन आप लेवेनशेटिन एडिट डिस्टेंस फंक्शन का इस्तेमाल करना चाहेंगे।
Example:
test=# SELECT levenshtein('GUMBO', 'GAMBOL');
levenshtein
-------------
2
(1 row)
2
दो शब्दों के बीच संपादित दूरी है। जब आप इसे कई शब्दों के विरुद्ध लागू करते हैं और संपादन दूरी परिणाम के आधार पर छाँटते हैं, तो आपके पास उस प्रकार के फ़ज़ी मैच होंगे जिनकी आप तलाश कर रहे हैं।
इस क्वेरी नमूना का प्रयास करें:(अपने स्वयं के ऑब्जेक्ट नाम और निश्चित रूप से डेटा के साथ)
SELECT *
FROM some_table
WHERE levenshtein(code, 'AB123-lHdfj') <= 3
ORDER BY levenshtein(code, 'AB123-lHdfj')
LIMIT 10
यह क्वेरी कहती है:
मुझे some_table से सभी डेटा के शीर्ष 10 परिणाम दें जहां कोड मान और इनपुट 'AB123-lHdfj' के बीच संपादन दूरी 3 से कम है। आपको वे सभी पंक्तियां वापस मिल जाएंगी जहां कोड का मान 3 वर्णों के अंतर से ' AB123-lHdfj'...
नोट:अगर आपको कोई त्रुटि मिलती है जैसे:
function levenshtein(character varying, unknown) does not exist
fuzzystrmatch
इंस्टॉल करें एक्सटेंशन का उपयोग कर:
test=# CREATE EXTENSION fuzzystrmatch;