2012-03-01 14 views
6

Qualcuno sa come utilizzare la funzione to_tsquery() di postgresql in sqlalchemy? Ho cercato molto su Google, non ho trovato nulla che io possa capire. Per favore aiuto.SQLAlchemy e Postgresql: to_tsquery()

spero che è disponibile in funzione di filtro in questo modo:

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

Lo SQL previsto per la query di cui sopra è qualcosa di simile:

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

risposta

8

Per questo tipo di query arbitrarie, è possibile incorporare lo sql direttamente nella query:

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

Si dovrebbe anche essere in grado di paramet erize t.column_name, ma non riesco a vedere i documenti per ora.

+0

la mia domanda sembra zoppa ora. Grazie – Sri

+0

oh e funziona come un fascino :) – Sri

5

Il metodo .op() consente di generare SQL per operatori arbitrari.

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