Django 2.1 - PostgreSQL specific lookups
PostgreSQL विशिष्ट लुकअप

PostgreSQL विशिष्ट लुकअप
त्रिग्राम समानता
trigram_similar
लुकअप आपको
trigram_similar
करने की अनुमति देता है, एक समर्पित PostgreSQL एक्सटेंशन का उपयोग करके साझा किए गए
trigram_similar
(लगातार तीन वर्ण) की संख्या को मापता है।
एक ट्रिग्राम लुकअप को एक अभिव्यक्ति दी जाती है और ऐसे परिणाम मिलते हैं जिनमें एक समानता माप वर्तमान समानता सीमा से अधिक होता है।
इसका उपयोग करने के लिए, अपने
INSTALLED_APPS
में
'django.contrib.postgres'
जोड़ें और PostgreSQL पर
pg_trgm एक्सटेंशन
सक्रिय करें।
आप
TrigramExtension
माइग्रेशन ऑपरेशन का उपयोग करके एक्सटेंशन इंस्टॉल कर सकते हैं।
trigram_similar
लुकअप का उपयोग
CharField
और
CharField
पर किया जा सकता है:
>>> City.objects.filter(name__trigram_similar="Middlesborough") ['<City: Middlesbrough>']
Unaccent
unaccent
लुकअप आपको एक समर्पित PostgreSQL एक्सटेंशन का उपयोग करके उच्चारण-असंवेदनशील लुकअप करने की अनुमति देता है।
यह लुकअप
Transform
का उपयोग करके कार्यान्वित किया जाता है, इसलिए इसे अन्य लुकअप फ़ंक्शन के साथ जंजीर किया जा सकता है।
इसका उपयोग करने के लिए, आपको अपने
INSTALLED_APPS
में
'django.contrib.postgres'
जोड़ने और
PostgreSQL पर
'django.contrib.postgres'
एक्सटेंशन को
सक्रिय करने की आवश्यकता है।
यदि आप माइग्रेशन का उपयोग करके इस सक्रियण को करना चाहते हैं तो
UnaccentExtension
माइग्रेशन ऑपरेशन उपलब्ध है)।
CharField
लुकअप का उपयोग
CharField
और
TextField
पर किया जा सकता है:
>>> City.objects.filter(name__unaccent="México") ['<City: Mexico>'] >>> User.objects.filter(first_name__unaccent__startswith="Jerem") ['<User: Jeremy>', '<User: Jérémy>', '<User: Jérémie>', '<User: Jeremie>']
चेतावनी
unaccent
लुकअप अधिकांश उपयोग मामलों में ठीक प्रदर्शन करना चाहिए।
हालांकि, इस फ़िल्टर का उपयोग करने वाले क्वेरीज़ आमतौर पर पूर्ण टेबल स्कैन करते हैं, जो बड़े तालिकाओं पर धीमा हो सकता है।
उन मामलों में, समर्पित पूर्ण पाठ अनुक्रमण उपकरण का उपयोग करना उचित हो सकता है।