PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Django - Wyszukiwanie pełnotekstowe - Wildcard

Rozszerzam klasę SearchQuery django i nadpisuję plainto_tsquery z to_tsquery . Zrobiłem kilka prostych testów, działa. Wrócę tutaj, jeśli znajdę przypadki, w których powoduje to problemy.

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

Teraz mogę zrobić coś takiego jak query = MySearchQuery('whatever:*')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw duży obiekt binarny (BLOB) do PostgreSQL za pomocą libpq ze zdalnej maszyny

  2. Porównaj tablice pod kątem równości, ignorując kolejność elementów

  3. Interpretacja wyników analizy wyjaśniania w Postgres

  4. Mnożenie dwóch kolumn, które zostały obliczone na podstawie instrukcji CASE

  5. Integracja narzędzi do zarządzania PostgreSQL w środowisku produkcyjnym