Обсуждение: Tsearch2: casting text to tsquery
Hello, I have a question that arose while using tsearch on a large database of book information. In order to inject unstemmed + stemmed versions of searchstrings into a query we want to cast an expression of type text to tsquery. Unfortunately SELECT 'word'::tsquery (where the literal 'word' is of type 'unknown' seemingly) works just fine while e.g. SELECT ('word' || '&fullword')::tsquery or, simpler SELECT 'word&fullword'::text::tsquery gives ERROR: cannot cast type text to tsearch2.tsquery How can we work around that? Thanks for any help Sincerely yours Alexander Presber
On Wed, 16 Nov 2005, Alexander Presber wrote: > Hello, > > I have a question that arose while using tsearch on a large database of book > information. > > In order to inject unstemmed + stemmed versions of searchstrings into a query > we want to cast an expression of type text to tsquery. > Unfortunately > > SELECT 'word'::tsquery > > (where the literal 'word' is of type 'unknown' seemingly) works just fine > while e.g. > > SELECT ('word' || '&fullword')::tsquery > > or, simpler > > SELECT 'word&fullword'::text::tsquery > > gives > > ERROR: cannot cast type text to tsearch2.tsquery > > How can we work around that? Thanks for any help no workaround needed. to_tsquery provides everything you need. If you want fancy-shmancy solution you could always write wrapper around tsquery, but I doubt you enter queries by hand, so why do you bothering ? > > Sincerely yours > Alexander Presber > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83
Am 16.11.2005 um 13:52 schrieb Oleg Bartunov: > On Wed, 16 Nov 2005, Alexander Presber wrote: > >> Hello, >> >> I have a question that arose while using tsearch on a large >> database of book information. >> >> In order to inject unstemmed + stemmed versions of searchstrings >> into a query we want to cast an expression of type text to tsquery. >> Unfortunately >> >> SELECT 'word'::tsquery >> >> (where the literal 'word' is of type 'unknown' seemingly) works >> just fine while e.g. >> >> SELECT ('word' || '&fullword')::tsquery >> >> or, simpler >> >> SELECT 'word&fullword'::text::tsquery >> >> gives >> >> ERROR: cannot cast type text to tsearch2.tsquery >> >> How can we work around that? Thanks for any help > > no workaround needed. to_tsquery provides everything you need. If > you want fancy-shmancy solution you could always write wrapper > around tsquery, but > I doubt you enter queries by hand, so why do you bothering ? No. No fancy-shmancy solution needed, just one that works. I do not see a way to include both a stemmed and unstemmed version of a string into a tsquery. Can you give an example, please? Thanks Alex P.S. I have read the documentation (twice.) >> >> Sincerely yours >> Alexander Presber >> >> >> >> >> ---------------------------(end of >> broadcast)--------------------------- >> TIP 6: explain analyze is your friend > > Regards, > Oleg > _____________________________________________________________ > Oleg Bartunov, sci.researcher, hostmaster of AstroNet, > Sternberg Astronomical Institute, Moscow University (Russia) > Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ > phone: +007(095)939-16-83, +007(095)939-23-83
On Wed, 16 Nov 2005, Alexander Presber wrote: > > Am 16.11.2005 um 13:52 schrieb Oleg Bartunov: > >> On Wed, 16 Nov 2005, Alexander Presber wrote: >> >>> Hello, >>> >>> I have a question that arose while using tsearch on a large database of >>> book information. >>> >>> In order to inject unstemmed + stemmed versions of searchstrings into a >>> query we want to cast an expression of type text to tsquery. >>> Unfortunately >>> >>> SELECT 'word'::tsquery >>> >>> (where the literal 'word' is of type 'unknown' seemingly) works just fine >>> while e.g. >>> >>> SELECT ('word' || '&fullword')::tsquery >>> >>> or, simpler >>> >>> SELECT 'word&fullword'::text::tsquery >>> >>> gives >>> >>> ERROR: cannot cast type text to tsearch2.tsquery >>> >>> How can we work around that? Thanks for any help >> >> no workaround needed. to_tsquery provides everything you need. If you want >> fancy-shmancy solution you could always write wrapper around tsquery, but >> I doubt you enter queries by hand, so why do you bothering ? > > No. No fancy-shmancy solution needed, just one that works. > > I do not see a way to include both a stemmed and unstemmed version of a > string into a tsquery. > Can you give an example, please? This is quite different question and Teodor has already answered you - use different configurations. But I'm wondering why do you need that. > > Thanks > Alex > > P.S. I have read the documentation (twice.) > >>> >>> Sincerely yours >>> Alexander Presber >>> >>> >>> >>> >>> ---------------------------(end of broadcast)--------------------------- >>> TIP 6: explain analyze is your friend >> >> Regards, >> Oleg >> _____________________________________________________________ >> Oleg Bartunov, sci.researcher, hostmaster of AstroNet, >> Sternberg Astronomical Institute, Moscow University (Russia) >> Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ >> phone: +007(095)939-16-83, +007(095)939-23-83 > > > ---------------------------(end of broadcast)--------------------------- > TIP 9: In versions below 8.0, the planner will ignore your desire to > choose an index scan if your joining column's datatypes do not > match Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83