Thread: Convert Simple Query into tsvector & tsquery format.
Dear all,
I have a simple query mentioned below :
select count(*) from page_content where (content like '%Militant%'
OR content like '%jihad%' OR content like '%Mujahid%' OR
content like '%fedayeen%' OR content like '%insurgent%' OR content like '%terrORist%' OR
content like '%cadre%' OR content like '%civilians%' OR content like '%police%' OR content like '%defence%' OR content like '%cops%' OR content like '%crpf%' OR content like '%dsf%' OR content like '%ssb%') AND (content like '%kill%' OR content like '%injure%');
I need to convert it into other format that use tsvector & tsquery for Full-Text Searching.
I try and convert it like :
SELECT count(*) from page_content WHERE publishing_date like '%2010%' and
content_language='en' and content is not null and isprocessable = 1 and
to_tsvector('english',content) @@ to_tsquery('english','Mujahid' || ' | '
|| 'jihad' || ' | ' || 'Militant' || ' | ' || 'fedayeen' || ' | ' || 'insurgent' || ' | ' || 'terrORist' || ' | ' || 'cadre'
|| ' | ' || 'civilians' || ' | ' || 'police' || ' | ' || 'cops' || ' | ' || 'crpf' || ' | ' || 'defence' || ' | ' || 'dsf' || ' | ' || 'ssb') ;
But not able to convert and use the condition
AND condition ( AND (content like '%kill%' OR content like '%injure%') ) also.
Please help me , how to add this to the query.
Thanks & best Regards,
Adarsh Sharma
I have a simple query mentioned below :
select count(*) from page_content where (content like '%Militant%'
OR content like '%jihad%' OR content like '%Mujahid%' OR
content like '%fedayeen%' OR content like '%insurgent%' OR content like '%terrORist%' OR
content like '%cadre%' OR content like '%civilians%' OR content like '%police%' OR content like '%defence%' OR content like '%cops%' OR content like '%crpf%' OR content like '%dsf%' OR content like '%ssb%') AND (content like '%kill%' OR content like '%injure%');
I need to convert it into other format that use tsvector & tsquery for Full-Text Searching.
I try and convert it like :
SELECT count(*) from page_content WHERE publishing_date like '%2010%' and
content_language='en' and content is not null and isprocessable = 1 and
to_tsvector('english',content) @@ to_tsquery('english','Mujahid' || ' | '
|| 'jihad' || ' | ' || 'Militant' || ' | ' || 'fedayeen' || ' | ' || 'insurgent' || ' | ' || 'terrORist' || ' | ' || 'cadre'
|| ' | ' || 'civilians' || ' | ' || 'police' || ' | ' || 'cops' || ' | ' || 'crpf' || ' | ' || 'defence' || ' | ' || 'dsf' || ' | ' || 'ssb') ;
But not able to convert and use the condition
AND condition ( AND (content like '%kill%' OR content like '%injure%') ) also.
Please help me , how to add this to the query.
Thanks & best Regards,
Adarsh Sharma
On Fri, 18 Mar 2011 12:30:50 +0530 Adarsh Sharma <adarsh.sharma@orkash.com> wrote: > Dear all, > > I have a simple query mentioned below : > > select count(*) from page_content where (content like > '%Militant%' OR content like '%jihad%' OR content like > '%Mujahid%' OR content like '%fedayeen%' OR content like > '%insurgent%' OR content like '%terrORist%' OR > content like '%cadre%' OR content like '%civilians%' OR content > like '%police%' OR content like '%defence%' OR content like > '%cops%' OR content like '%crpf%' OR content like '%dsf%' OR > content like '%ssb%') AND (content like '%kill%' OR content like > '%injure%'); It's not clear where the problem is. select to_tsquery('english', '(yellow | blue) & (red | black)'); to_tsquery --------------------------------------------- ( 'yellow' | 'blue' ) & ( 'red' | 'black' ) select to_tsvector('english', 'yellow red') @@ to_tsquery('english', '(yellow | blue) & (red | black)'); The only thing I can see that could cause problems is you may have previously "mangled" words in the ilike query while you'd leave that task to ts engine that will find a proper lexeme. Could you be more specific about the problem you're encountering. -- Ivan Sergio Borgonovo http://www.webthatworks.it