forked from go/pgm
text search query
This commit is contained in:
@@ -107,15 +107,19 @@ func TestSelectDerived(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestSelectTV(t *testing.T) {
|
||||
expected := "SELECT users.first_name, users.last_name, users.email, TS_RANK(users.search_vector, query) AS rank" +
|
||||
" FROM users, TO_TSQUERY('english', $1) query" +
|
||||
" WHERE users.status_id = $2 AND users.search_vector @@ query" +
|
||||
expected := "WITH ts AS (SELECT to_tsquery('english', $1) AS query)" +
|
||||
" SELECT users.first_name, users.last_name, users.email, TS_RANK(users.search_vector, ts.query) AS rank" +
|
||||
" FROM users" +
|
||||
" JOIN user_sessions ON users.id = user_sessions.user_id" +
|
||||
" CROSS JOIN ts" +
|
||||
" WHERE users.status_id = $2 AND users.search_vector @@ ts.query" +
|
||||
" ORDER BY rank DESC"
|
||||
|
||||
qry := db.User.
|
||||
WithTsQuery("anki", "query").
|
||||
Select(user.FirstName, user.LastName, user.Email, user.SearchVector.TsRank("query", "rank")).
|
||||
Where(user.StatusID.Eq(1), user.SearchVector.TsQuery("query")).
|
||||
WithTextSearch("ts", "query", "text to search").
|
||||
Select(user.FirstName, user.LastName, user.Email, user.SearchVector.TsRank("ts.query", "rank")).
|
||||
Join(db.UserSession, user.ID, usersession.UserID).
|
||||
Where(user.StatusID.Eq(1), user.SearchVector.TsQuery("ts.query")).
|
||||
OrderBy(pgm.Field("rank").Desc())
|
||||
|
||||
got := qry.String()
|
||||
|
||||
Reference in New Issue
Block a user