2012-03-01 11 views
6

誰かがpostgresqlのto_tsquery()関数をsqlalchemyで使用する方法を知っていますか?私はGoogleで多くの検索をしましたが、私が理解できるものは何も見つかりませんでした。助けてください。SQLAlchemyとPostgreSQL:to_tsquery()

私はそれがこのようにフィルタ機能で利用可能であると思います

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

上記のクエリのために期待されるSQLはこのようなものです:あなたができる、任意のクエリのこれらのタイプの場合

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

答えて

8

クエリに直接SQLを埋め込みます。

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

また、 erize t.column_nameが、現在のドキュメントは表示されません。

+0

私の質問は今や恥ずかしそうです。ありがとう – Sri

+0

ああ、それは魅力のように動作します:) – Sri

5

.op()メソッドを使用すると、任意の演算子のSQLを生成できます。

session.query(TableName).filter(
    Table.c.column_name.op('@@')(to_tsquery(search_string)) 
).all()