Alexander Korotkov <aekorot...@gmail.com> writes: > # select to_tsvector('pg_class foo') @@ websearch_to_tsquery('"pg_class > foo"'); > ?column? > ---------- > f
Yeah, surely this is wrong. > # select to_tsquery('pg_class <-> foo'); > to_tsquery > ------------------------------ > ( 'pg' & 'class' ) <-> 'foo' > I think if a user writes 'pg_class <-> foo', then it's expected to > match 'pg_class foo' independently on which lexemes 'pg_class' is > split into. Indeed. It seems to me that this: regression=# select to_tsquery('pg_class'); to_tsquery ---------------- 'pg' & 'class' (1 row) is wrong all by itself. Now that we have phrase search, a much saner translation would be "'pg' <-> 'class'". If we fixed that then it seems like the more complex case would just work. I read your patch over quickly and it seems like a reasonable approach (but sadly underdocumented). Can we extend the idea to fix the to_tsquery case? regards, tom lane