मैं django SearchQuery वर्ग का विस्तार करता हूं और plainto_tsquery
. को ओवरराइड करता हूं to_tsquery
. के साथ . कुछ सरल परीक्षण किए, यह काम करता है। मैं यहां वापस आऊंगा अगर मुझे ऐसे मामले मिलते हैं जहां यह समस्याएं पैदा करता है।
from django.contrib.postgres.search import SearchQuery
class MySearchQuery(SearchQuery):
def as_sql(self, compiler, connection):
params = [self.value]
if self.config:
config_sql, config_params = compiler.compile(self.config)
template = 'to_tsquery({}::regconfig, %s)'.format(config_sql)
params = config_params + [self.value]
else:
template = 'to_tsquery(%s)'
if self.invert:
template = '!!({})'.format(template)
return template, params
अब मैं कुछ ऐसा कर सकता हूं जैसे query = MySearchQuery('whatever:*')