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

सबस्ट्रिंग के लिए pg_search मणि ​​का उपयोग करके रेल पर पीजी पूर्ण पाठ खोज

मैं pg_search का लेखक और अनुरक्षक हूँ।

दुर्भाग्य से, PostgreSQL का tsearch डिफ़ॉल्ट रूप से ईमेल पते को विभाजित नहीं करता है और आपको भागों के साथ मिलान करने की अनुमति देता है। यदि आप :trigram . को चालू करते हैं तो यह काम कर सकता है खोज, हालांकि, चूंकि यह मनमाना उप-स्ट्रिंग से मेल खाता है जो खोजने योग्य पाठ में कहीं भी दिखाई देते हैं।

pg_search_scope :search_by_detail,
                :against => [
                  [:first_name,'A'],
                  [:last_name,'B'],
                  [:email,'C']
                ],
                :using => {
                  :tsearch => {:prefix => true},
                  :trigram => {}
                }

मैंने psql में निम्न कमांड चलाकर इसकी पुष्टि की:

grant=# SELECT plainto_tsquery('example.com') @@ to_tsvector('english', 'example@sqldat.com');
 ?column? 
----------
 f
(1 row)

मुझे पता है कि पार्सर ईमेल पते का पता लगाता है, इसलिए मुझे लगता है कि यह संभव होना चाहिए। लेकिन इसमें एक टेक्स्ट सर्च डिक्शनरी बनाना शामिल होगा। PostgreSQL में जो ईमेल पते को टोकन में ठीक से विभाजित करेगा।

यहां इस बात का प्रमाण दिया गया है कि टेक्स्ट सर्च पार्सर जानता है कि यह एक ईमेल पता है:

grant=# SELECT ts_debug('english', 'example@sqldat.com');
                                  ts_debug                                   
-----------------------------------------------------------------------------
 (email,"Email address",example@sqldat.com,{simple},simple,{example@sqldat.com})
(1 row)



  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. रिलेशनल डेटाबेस में बड़े स्ट्रिंग फ़ील्ड का संपादन इतिहास कैसे रखें?

  3. 'पासवर्ड प्रमाणीकरण उपयोगकर्ता पोस्टग्रेज के लिए विफल'

  4. Ubuntu 20.04 DigitalOcean पर PostgreSQL 12 कैसे स्थापित करें?

  5. PostgreSQL में विभिन्न स्वामियों के साथ सभी तालिकाओं के लिए बाधाओं की सूची बनाएं