Thread: Tsearch2 ranking
2 rows of tsvector: 'bar':2 'baz':3 'foo':1 'bar':2 'baz':1 'foo':3 so source text was: foo bar baz baz bar foo ts_query now is 'foo&baz&baz', so both matched. How can I honor the correct order of the first row and rank it higher? The position information is there, why doesn't rank() / rank_cd() not use it? Is there any way to make a difference between those to rows? Any? Even if it's a bad hack? I really need it :/ Thanks in advance -- Regards, Hannes Dorbath
ts_query now is 'foo&bar&baz' Sorry, typo. On 13.03.2006 12:38, Hannes Dorbath wrote: > ts_query now is 'foo&baz&baz', so both matched. -- Regards, Hannes Dorbath
On Mon, 13 Mar 2006, Hannes Dorbath wrote: > 2 rows of tsvector: > > 'bar':2 'baz':3 'foo':1 > 'bar':2 'baz':1 'foo':3 > > so source text was: > > foo bar baz > baz bar foo > > ts_query now is 'foo&baz&baz', so both matched. > > How can I honor the correct order of the first row and rank it higher? The > position information is there, why doesn't rank() / rank_cd() not use it? There is a hint to do this. See "Phrase search" in http://www.sai.msu.su/~megera/oddmuse/index.cgi/Tsearch_V2_Notes > > Is there any way to make a difference between those to rows? Any? Even if > it's a bad hack? I really need it :/ > > Thanks in advance > > > Regards, Oleg _____________________________________________________________ Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru), Sternberg Astronomical Institute, Moscow University, Russia Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(495)939-16-83, +007(495)939-23-83
Order of terms in ts_query hasn't any meaning in current implementation. But you can use your own ranking function. Hannes Dorbath wrote: > 2 rows of tsvector: > > 'bar':2 'baz':3 'foo':1 > 'bar':2 'baz':1 'foo':3 > > so source text was: > > foo bar baz > baz bar foo > > ts_query now is 'foo&baz&baz', so both matched. > > How can I honor the correct order of the first row and rank it higher? > The position information is there, why doesn't rank() / rank_cd() not > use it? > > Is there any way to make a difference between those to rows? Any? Even > if it's a bad hack? I really need it :/ > > Thanks in advance > > -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/