Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: text search patch status update?


  • From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
  • To: Sushant Sinha <sushant354(at)gmail(dot)com>
  • Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, pgsql-hackers(at)postgresql(dot)org
  • Subject: Re: text search patch status update?
  • Date: Wed, 17 Sep 2008 13:32:29 +0300
  • Message-id: <48D0DCBD.7030904@enterprisedb.com> <text/plain>

Sushant Sinha wrote:
Patch #2. I think this is a straigt forward bug fix.

Yes, I think you're right. In hlCover(), *q is 0 when the only match is the first item in the text, and we shouldn't bail out with "return false" in that case.

But there seems to be something else going on here as well:

postgres=# select ts_headline('1 2 3 4 5', '2'::tsquery, 'MinWords=2, MaxWords=3');
 ts_headline
--------------
 <b>2</b> 3 4
(1 row)

postgres=# select ts_headline('aaa1 aaa2 aaa3 aaa4 aaa5','aaa2'::tsquery, 'MinWords=2, MaxWords=3');
   ts_headline
------------------
 <b>aaa2</b> aaa3
(1 row)

In the first example, you get three words, and in the 2nd, just two. It must be because of the default ShortWord setting of 3. Also, if only the last word matches, and it's a "short word", you get the whole text:

postgres=# select ts_headline('1 2 3 4 5','5'::tsquery, 'MinWords=2, MaxWords=3');
   ts_headline
------------------
 1 2 3 4 <b>5</b>
(1 row)

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group