2012-03-01 31 views
6

Có ai biết cách sử dụng hàm to_tsquery() của postgresql trong sqlalchemy không? Tôi đã tìm kiếm rất nhiều trong Google, tôi không tìm thấy bất cứ điều gì mà tôi có thể hiểu được. Hãy giúp tôi.SQLAlchemy và Postgresql: to_tsquery()

Tôi hy vọng nó có sẵn chức năng lọc như thế này:

session.query(TableName).filter(Table.column_name.to_tsquery(search_string)).all() 

SQL dự kiến ​​cho các truy vấn trên là một cái gì đó như thế này:

Select column_name 
    from table_name t 
    where t.column_name @@ to_tsquery(:search_string) 

Trả lời

8

Đối với các loại truy vấn tùy ý, bạn có thể nhúng sql trực tiếp vào truy vấn của bạn:

session.query(TableName).\ 
    filter("t.column_name @@ to_tsquery(:search_string)").\ 
    params(search_string=search_string).all() 

Bạn cũng nên có thể tham số erize t.column_name, nhưng không thể xem tài liệu cho điều đó ngay bây giờ.

+0

câu hỏi của tôi có vẻ như bây giờ. Cảm ơn – Sri

+0

oh và nó hoạt động như một nét duyên dáng :) – Sri

5

Phương thức .op() cho phép bạn tạo SQL cho các toán tử tùy ý.

session.query(TableName).filter(
    Table.c.column_name.op('@@')(to_tsquery(search_string)) 
).all() 
Các vấn đề liên quan