PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Django - Tìm kiếm toàn văn - Ký tự đại diện

Tôi mở rộng lớp django SearchQuery và ghi đè plainto_tsquery với to_tsquery . Đã làm một số thử nghiệm đơn giản, nó hoạt động. Tôi sẽ quay lại đây nếu tôi tìm thấy các trường hợp mà điều này gây ra sự cố.

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

Bây giờ tôi có thể làm điều gì đó như 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. CHỌN * TỪ BẢNG MỚI tương đương trong Postgres

  2. Thay đổi thứ tự cột trong bảng postgres

  3. Tại sao tôi có thể tạo một bảng với PRIMARY KEY trên một cột có thể làm trống?

  4. Đã xảy ra lỗi khi cài đặt pg (0.18.2) và Bundler không thể tiếp tục

  5. Tạo toán tử bình đẳng tùy chỉnh cho kiểu PostgreSQL (điểm) cho các cuộc gọi DISTINCT