Brian DeRocher <brian@xxxxxxxxxxxx> writes: > But why does to_tsquery() AND them? > rasmas_hackathon=> select * from to_tsquery( 'gn-foo | bandage' ); > to_tsquery > ------------------------------------ > 'gn-foo' & 'gn' & 'foo' | 'bandag' > (1 row) Because what you're looking for is gn-foo, not either gn alone or foo alone. Converting to "OR" would be the wrong thing. > The rank is so bad. > rasmas_hackathon=> select ts_rank_cd( to_tsvector( 'gn series bandage' ), to_tsquery( 'gn-foo | bandage' ) ); > ts_rank_cd > ------------ > 0.1 > (1 row) > Without the hyphen the rank is better, despite the process above. > rasmas_hackathon=> select ts_rank_cd( to_tsvector( 'gn series bandage' ), to_tsquery( 'gn | bandage' ) ); > ts_rank_cd > ------------ > 0.2 > (1 row) Don't see the problem. The first case doesn't match the query as well as the second one does, so I'd fully expect a higher rank for the second. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general