PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेसक्यूएल से साधारण फजी खोज कैसे बनाएं?

पोस्टग्रेज साउंडएक्स और मेटाफोन जैसे कई स्ट्रिंग कंप्रेशन फ़ंक्शन के साथ एक मॉड्यूल प्रदान करता है। लेकिन आप लेवेनशेटिन एडिट डिस्टेंस फंक्शन का इस्तेमाल करना चाहेंगे।

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीएसक्यूएल के साथ यूजर कैसे बनाएं

  2. PostgreSQL के लिए pgBouncer का उपयोग करने के लिए एक गाइड

  3. Postgres/SQL में न्यूनतम/अधिकतम दो पूर्णांक कैसे प्राप्त करें?

  4. प्राथमिक कुंजी के रूप में ईमेल पते का प्रयोग करें?

  5. हिस्टोग्राम डेटा से प्रतिशतक