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

PostgreSQL:किसी दिए गए वाक्य के निकटतम वाक्य खोजें

पूर्ण पाठ खोज (FTS)

आप plainto_tsquery() . का उपयोग कर सकते हैं प्रति (प्रति दस्तावेज़ ) ...

SELECT plainto_tsquery('english', 'Sentence: with irrelevant words (and punctuation) in it.')

 plainto_tsquery
------------------
 'sentenc' & 'irrelev' & 'word' & 'punctuat'

इसे इस तरह इस्तेमाल करें:

SELECT *
FROM   tbl
WHERE  to_tsvector('english', sentence) @@ plainto_tsquery('english', 'My new sentence');

लेकिन यह अभी भी काफी सख्त है और समानता के लिए केवल बहुत सीमित सहिष्णुता प्रदान करता है।

ट्रिग्राम समानता

समानता . की खोज के लिए बेहतर अनुकूल हो सकता है , यहां तक ​​कि कुछ हद तक टाइपो को भी दूर करें।

अतिरिक्त मॉड्यूल स्थापित करें pg_trgm , एक GiST अनुक्रमणिका बनाएं और समानता ऑपरेटर का उपयोग करें % निकटतम पड़ोसी खोज . में :

मूल रूप से, sentence . पर एक ट्रिग्राम GiST अनुक्रमणिका के साथ :

-- SELECT set_limit(0.3);  -- adjust tolerance if needed

SELECT *
FROM   tbl
WHERE  sentence % 'My new sentence'
ORDER  BY sentence <-> 'My new sentence'
LIMIT  10;

अधिक:

दोनों को मिलाएं

आप FTS और ट्रिग्राम समानता को भी जोड़ सकते हैं:



  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 उपयोगकर्ता अनुमतियाँ

  2. पोस्टग्रेएसक्यूएल के लिए पीजीपूल के लिए एक गाइड:भाग दो

  3. WHERE क्लॉज में दो बार एक ही सूची का उपयोग कैसे करें?

  4. क्या एक PHP, Python, PostgreSQL डिज़ाइन एक व्यावसायिक अनुप्रयोग के लिए उपयुक्त है?

  5. हमें PostgreSQL जैसे डेटाबेस पर RabbitMQ जैसे संदेश दलालों की आवश्यकता क्यों है?