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

एक tsvector में प्रत्येक तत्व पर Levenshtein फ़ंक्शन का उपयोग करना?

एक्सटेंशन pg_trgm . पर विचार करें इसके बजाय levenshtein() . KNN सुविधा PostgreSQL 9.1 या बाद के संस्करण में

प्रति डेटाबेस एक बार एक्सटेंशन इंस्टॉल करें:

CREATE EXTENSION pg_trgm;

और <-> का उपयोग करें या % ऑपरेटर . SO पर कई संबंधित उत्तर यहां पोस्ट किए गए हैं, pg_tgrm [PostgreSQL]<खोजें /ए> ...

आप जो चाहते हैं उस पर जंगली शॉट:

WITH x AS (
    SELECT unnest(string_to_array(trim(strip(
      'fat:2,4 cat:3 rat:5A'::tsvector)::text, ''''), ''' ''')) AS val
    )                                    -- provide ts_vector, extract strings
    , y AS( SELECT 'brat'::text AS term) -- provide term to match
SELECT val, term
      ,(val <-> term) AS trg_dist        -- distance operator
      ,levenshtein(val, term) AS lev_dist
FROM   x, y;

रिटर्न:

 val | term | trg_dist | lev_dist
-----+------+----------+----------
 cat | brat |    0.875 |        2
 fat | brat |    0.875 |        2
 rat | brat | 0.714286 |        1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - BYTEA कॉलम में बेस 64 इमेज स्ट्रिंग्स कैसे डालें?

  2. Windows10 पर PostGis में OSM फ़ाइल आयात करें

  3. सीक्वेलाइज़ माइग्रेशन - PostgreSQL में ट्रिगर बनाएं

  4. पोस्टग्रेएसक्यूएल अप्सर्ट (संघर्ष पर) इन्सर्ट और अपडेट में समान मूल्यों के साथ

  5. महीनों को छाँटते हुए उन्हें पाठ में परिवर्तित कर रहा हूँ