tsvector
tsvector
का प्रयोग करें टाइप करें, जो PostgreSQL टेक्स्ट-सर्च फीचर का हिस्सा है।
postgres> select 'What are Q-type Operations?'::tsvector;
tsvector
-------------------------------------
'Operations?' 'Q-type' 'What' 'are'
(1 row)
आप परिचित ऑपरेटरों का उपयोग tsvectors पर भी कर सकते हैं:
postgres> select 'What are Q-type Operations?'::tsvector
postgres> || 'A.B.C''s of Coding'::tsvector;
?column?
--------------------------------------------------------------
'A.B.C''s' 'Coding' 'Operations?' 'Q-type' 'What' 'are' 'of'
यदि आप भाषा-विशिष्ट सामान्यीकरण भी करना चाहते हैं, जैसे सामान्य शब्दों ('द', 'ए', आदि) को हटाना और गुणा करना, तो to_tsvector
का उपयोग करें समारोह। यह टेक्स्ट सर्च के लिए अलग-अलग शब्दों को वेट भी असाइन करता है:
postgres> select to_tsvector('english',
postgres> 'What are Q-type Operations? A.B.C''s of Coding');
to_tsvector
--------------------------------------------------------
'a.b.c':7 'code':10 'oper':6 'q':4 'q-type':3 'type':5
(1 row)
पूर्ण विकसित टेक्स्ट खोज
स्पष्ट रूप से किसी क्वेरी में प्रत्येक पंक्ति के लिए ऐसा करना महंगा होगा - इसलिए आपको tsvector को एक अलग कॉलम में स्टोर करना चाहिए और इसे खोजने के लिए ts_query() का उपयोग करना चाहिए। यह आपको tsvector पर एक GiST अनुक्रमणिका बनाने की अनुमति भी देता है।
postgres> insert into text (phrase, tsvec)
postgres> values('What are Q-type Operations?',
postgres> to_tsvector('english', 'What are Q-type Operations?'));
INSERT 0 1
tsquery और @@ ऑपरेटर का उपयोग करके खोज की जाती है:
postgres> select phrase from text where tsvec @@ to_tsquery('q-type');
phrase
-----------------------------
What are Q-type Operations?
(1 row)