text search query

This commit is contained in:
2025-11-08 14:29:54 +05:30
parent a795c0e8d6
commit a2b984c342
4 changed files with 38 additions and 31 deletions

View File

@@ -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()